/* BiryaniTalk — app styles.
   Built directly from the owner-approved design files:
   design-v1/index.html (Set 1: brand + auth) and design-v1/set2-profile.html
   (Set 2: profile wizard). Palette and components match the mockups. */

:root{
  --page:#EFE7D2;
  --cream:#FFFDF7;
  --border:#F0E7D3;
  --green:#0B5C40;
  --green-dark:#08402C;
  --green-tint:#EDF6F0;
  --saffron:#E8890C;
  --gold:#D9A441;
  --ink:#233026;
  --ink-soft:#68705F;
  --ink-mute:#9A917E;
  --field-border:#EFE3C2;
  --red:#C4502F;
}
*{margin:0;padding:0;box-sizing:border-box;}
html,body{height:100%;}
body{
  background:#F5EFE0;
  font-family:-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
}
#app{
  max-width:430px;margin:0 auto;min-height:100dvh;background:var(--cream);
  display:flex;flex-direction:column;padding:20px 26px 28px;position:relative;
  box-shadow:0 0 44px rgba(23,19,16,.14);
}
@media (max-width:460px){ #app{box-shadow:none;} }
button{font-family:inherit;}
a{color:var(--green);}
[hidden]{display:none !important;}

/* ---------- logo lockup ---------- */
.logo-lockup{display:flex;flex-direction:column;align-items:center;text-align:center;}
.wordmark{font-family:Georgia,"Times New Roman",serif;font-weight:700;color:var(--ink);line-height:1;}
.wordmark .bt-accent{color:var(--green);}
.tagline{font-weight:600;letter-spacing:2.2px;text-transform:uppercase;color:var(--ink-soft);}
.tagline .hl{background:linear-gradient(120deg,var(--saffron),var(--gold));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--saffron);}
.logo-lg .wordmark{font-size:37px;margin-top:2px;}
.logo-lg .tagline{font-size:12.5px;margin-top:8px;}
.logo-sm .wordmark{font-size:21px;margin-top:0;}
.logo-sm .tagline{font-size:8.5px;margin-top:4px;letter-spacing:1.8px;}
.logo-sm{flex-direction:row;gap:10px;text-align:left;align-items:center;}
.logo-sm .wm-col{display:flex;flex-direction:column;}

/* ---------- logo + loader animations ---------- */
@keyframes steamRise{
  0%{opacity:0;transform:translateY(5px);}
  35%{opacity:.85;}
  70%{opacity:.5;}
  100%{opacity:0;transform:translateY(-9px);}
}
.steam{opacity:0;animation:steamRise 3.2s ease-in-out infinite;}
.steam.s2{animation-delay:1.05s;}
.steam.s3{animation-delay:2.1s;}

@keyframes bob{0%,100%{transform:translateY(0);}50%{transform:translateY(2.4px);}}
.bob{animation:bob 3.4s ease-in-out infinite;}
.bob.b2{animation-delay:.7s;}
.bob.b3{animation-delay:1.3s;}
.bob.b4{animation-delay:1.9s;}

@keyframes bubbleA{
  0%,42%{opacity:1;transform:scale(1);}
  50%,92%{opacity:0;transform:scale(.6);}
  100%{opacity:1;transform:scale(1);}
}
@keyframes bubbleB{
  0%,42%{opacity:0;transform:scale(.6);}
  50%,92%{opacity:1;transform:scale(1);}
  100%{opacity:0;transform:scale(.6);}
}
.bubble-a{transform-origin:42px 112px;animation:bubbleA 6s ease-in-out infinite;}
.bubble-b{transform-origin:264px 62px;animation:bubbleB 6s ease-in-out infinite;}

@keyframes spoonTilt{0%,100%{transform:rotate(-5deg);}50%{transform:rotate(6deg);}}
.spoon-tilt{transform-origin:132px 106px;animation:spoonTilt 3.4s ease-in-out infinite;}

@keyframes flameFlicker{
  0%,100%{transform:scaleY(1) scaleX(1);}
  30%{transform:scaleY(1.14) scaleX(.96);}
  55%{transform:scaleY(.9) scaleX(1.04);}
  80%{transform:scaleY(1.08) scaleX(.98);}
}
.flame{transform-origin:100px 168px;animation:flameFlicker 1.15s ease-in-out infinite;}
.flame.inner{animation-delay:.35s;}

@keyframes lidHop{0%,100%{transform:translateY(0);}50%{transform:translateY(-2.6px);}}
.lid-hop{animation:lidHop 1.9s ease-in-out infinite;}

@keyframes stir{0%,100%{transform:rotate(-14deg);}50%{transform:rotate(16deg);}}
.spoon-stir{transform-origin:126px 92px;animation:stir 2.4s ease-in-out infinite;}

@keyframes steamSwirl{
  0%{opacity:0;transform:translateY(4px) rotate(0deg);}
  40%{opacity:.9;}
  100%{opacity:0;transform:translateY(-10px) rotate(7deg);}
}
.swirl{opacity:0;animation:steamSwirl 2.8s ease-in-out infinite;}
.swirl.w2{animation-delay:1.4s;}

@keyframes dotPulse{0%,60%,100%{opacity:.2;}30%{opacity:1;}}
.cook-dots span{animation:dotPulse 1.4s infinite;display:inline-block;}
.cook-dots span:nth-child(2){animation-delay:.2s;}
.cook-dots span:nth-child(3){animation-delay:.4s;}

@keyframes caretBlink{0%,100%{opacity:1;}50%{opacity:0;}}
.otp-box.active .caret{animation:caretBlink 1.1s infinite;}

@media (prefers-reduced-motion: reduce){
  .steam,.bob,.bubble-a,.bubble-b,.spoon-tilt,.flame,.lid-hop,.spoon-stir,.swirl,.cook-dots span{animation:none !important;}
  .steam,.swirl{opacity:.45;}
  .bubble-a{opacity:1;}
  .bubble-b{opacity:0;}
}

/* ---------- cooking loader overlay ---------- */
.cook-overlay{
  position:fixed;inset:0;z-index:90;background:rgba(23,19,16,.45);
  display:flex;align-items:center;justify-content:center;
}
.cook-card{
  background:#fff;border-radius:26px;padding:30px 38px 24px;text-align:center;
  box-shadow:0 24px 50px rgba(0,0,0,.35);width:228px;
}
.cook-text{font-size:16.5px;font-weight:700;color:var(--ink);margin-top:6px;}
.cook-sub{font-size:11.5px;color:var(--ink-mute);margin-top:5px;}
.boot{flex:1;display:flex;align-items:center;justify-content:center;}
.boot-card{
  background:#fff;border-radius:26px;padding:30px 38px 24px;text-align:center;
  box-shadow:0 18px 40px rgba(23,19,16,.16);width:228px;
}

/* ---------- splash (flash) screen ----------
   Markup + critical CSS are inline in index.php so the branded first
   paint needs neither this file nor app.js; this is the canonical copy.
   Logo SVG animation classes (.steam/.bob/.bubble-*) are the global
   ones above. Dismissal is driven by app.js (dismissSplash): minimum
   4s on screen AND bootstrap resolved, then .splash-out fades it and
   the node is removed. splashSafety is the no-JS last resort. */
#splash{
  position:fixed;inset:0;z-index:200;background:var(--cream);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:24px;animation:splashSafety .6s ease 12s forwards;
}
@keyframes splashSafety{to{opacity:0;visibility:hidden;}}
#splash.splash-out{opacity:0 !important;transition:opacity .45s ease;}
#splash .splash-logo{animation:splashIn .8s cubic-bezier(.2,.7,.3,1) both;}
@keyframes splashIn{from{opacity:0;transform:scale(.92) translateY(10px);}to{opacity:1;transform:scale(1) translateY(0);}}
#splash .splash-logo svg{max-width:80vw;height:auto;}
#splash .splash-lines{position:relative;height:30px;margin-top:30px;width:100%;max-width:360px;}
#splash .splash-line{
  position:absolute;left:0;right:0;top:0;text-align:center;
  font-size:16px;line-height:1.45;color:var(--ink-soft);opacity:0;
  animation:splashLine 4.5s ease-in-out infinite;
}
#splash .splash-line.l2{animation-delay:1.5s;}
#splash .splash-line.l3{animation-delay:3s;}
@keyframes splashLine{
  0%{opacity:0;transform:translateY(10px);}
  7%{opacity:1;transform:translateY(0);}
  26%{opacity:1;transform:translateY(0);}
  33.33%{opacity:0;transform:translateY(-10px);}
  100%{opacity:0;transform:translateY(-10px);}
}
#splash .sl-kw{font-weight:800;}
#splash .l1 .sl-kw{color:var(--green);}
#splash .l2 .sl-kw{color:var(--saffron);}
#splash .l3 .sl-kw{color:#B97F16;}
#splash .splash-shimmer{position:absolute;left:0;right:0;bottom:0;height:4px;background:rgba(217,164,65,.18);overflow:hidden;}
#splash .splash-shimmer i{
  display:block;height:100%;width:40%;
  background:linear-gradient(90deg,transparent,var(--saffron),var(--gold),transparent);
  animation:splashShimmer 1.6s ease-in-out infinite;
}
@keyframes splashShimmer{0%{transform:translateX(-110%);}100%{transform:translateX(280%);}}
@media (prefers-reduced-motion: reduce){
  #splash .splash-logo,#splash .splash-line,#splash .splash-shimmer i{animation:none !important;}
  #splash .splash-lines{height:auto;}
  #splash .splash-line{position:static;opacity:1;margin-top:6px;}
  #splash .splash-shimmer{display:none;}
}

/* ---------- auth components ---------- */
.logo-zone{margin-top:14px;}
.auth-head{margin:22px 0 6px;}
.auth-head.center{text-align:center;}
h2.screen-title{font-size:25px;font-weight:700;letter-spacing:-.2px;color:var(--ink);}
.screen-sub{font-size:13.5px;color:var(--ink-soft);margin-top:6px;line-height:1.45;}
.form{margin-top:20px;display:flex;flex-direction:column;gap:15px;}
.form.tight{gap:11px;margin-top:14px;}
.field label{display:block;font-size:12px;font-weight:600;color:var(--ink);margin-bottom:7px;letter-spacing:.2px;}
.field label .opt{color:var(--ink-mute);font-weight:500;}
.input{display:flex;align-items:center;gap:10px;background:#fff;border:1.5px solid var(--field-border);border-radius:13px;padding:0 14px;height:52px;}
.input:focus-within{border-color:var(--gold);box-shadow:0 0 0 3px rgba(217,164,65,.16);}
.input svg{flex:none;color:#A08C6E;}
.input input{border:none;outline:none;background:transparent;font-size:14.5px;color:var(--ink);width:100%;font-family:inherit;}
.input input::placeholder{color:#B9B2A6;}
.input .eye{color:#B0A58F;flex:none;display:flex;cursor:pointer;background:none;border:none;padding:2px;}
.row-between{display:flex;justify-content:space-between;align-items:center;}
.forgot-link{font-size:13px;color:var(--green);font-weight:600;text-decoration:none;cursor:pointer;}
.btn{
  margin-top:6px;height:54px;border:none;border-radius:14px;cursor:pointer;
  background:linear-gradient(135deg,var(--saffron),var(--gold));
  color:#fff;font-size:15.5px;font-weight:700;font-family:inherit;letter-spacing:.2px;
  box-shadow:0 10px 22px rgba(217,164,65,.35);
  display:flex;align-items:center;justify-content:center;gap:8px;width:100%;
}
.btn:active{transform:translateY(1px);}
.btn.green{background:var(--green);box-shadow:0 10px 22px rgba(14,94,70,.28);}
.btn.secondary{
  background:#fff;color:var(--green);border:1.5px solid var(--green);
  box-shadow:none;width:auto;padding:0 18px;height:50px;font-size:15px;margin-top:0;
}
.divider{display:flex;align-items:center;gap:12px;margin:20px 0 4px;color:var(--ink-mute);font-size:12px;}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:var(--border);}
.alt-cta{text-align:center;font-size:13.5px;color:var(--ink-soft);margin-top:14px;}
.alt-cta a{color:var(--green);font-weight:700;text-decoration:none;cursor:pointer;}
.micro{margin-top:auto;text-align:center;font-size:11px;color:var(--ink-mute);line-height:1.5;padding-top:16px;}
.micro a{color:var(--green);font-weight:600;text-decoration:none;}
.check{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:var(--ink-soft);line-height:1.5;cursor:pointer;}
.check .box{flex:none;width:20px;height:20px;border-radius:6px;background:#fff;border:1.5px solid var(--field-border);display:flex;align-items:center;justify-content:center;margin-top:1px;}
.check.on .box{background:var(--green);border-color:var(--green);}
.check a{color:var(--green);font-weight:600;text-decoration:none;}
.form-msg{min-height:18px;font-size:13px;font-weight:600;color:var(--red);line-height:1.45;}
.form-msg.ok{color:var(--green);}

/* ---------- OTP ---------- */
.otp-row{display:flex;gap:9px;justify-content:space-between;margin-top:8px;}
.otp-box{
  width:47px;height:58px;border-radius:13px;background:#fff;border:1.5px solid var(--field-border);
  display:flex;align-items:center;justify-content:center;
}
.otp-box input{
  width:100%;height:100%;border:none;outline:none;background:transparent;text-align:center;
  font-size:22px;font-weight:700;color:var(--ink);font-family:inherit;padding:0;
}
.otp-box.active{border-color:var(--saffron);box-shadow:0 0 0 3px rgba(232,137,12,.16);}
.otp-box.active .caret{width:2px;height:26px;background:var(--saffron);}
.resend{text-align:center;font-size:13px;color:var(--ink-soft);margin-top:18px;}
.resend b{color:var(--ink);}
.resend a{color:var(--green);font-weight:700;text-decoration:none;cursor:pointer;}
.otp-note{display:flex;gap:9px;background:#F3EAD9;border:1px solid var(--border);border-radius:12px;padding:11px 13px;font-size:12px;color:#7A6A4F;line-height:1.5;margin-top:20px;}
.otp-note svg{flex:none;margin-top:1px;color:var(--gold);}

/* ---------- password strength ---------- */
.strength{display:flex;align-items:center;gap:6px;margin-top:9px;}
.strength i{width:34px;height:5px;border-radius:3px;background:#EADFCB;display:block;}
.strength i.on1{background:#D9704A;}
.strength i.on2{background:var(--gold);}
.strength i.on3{background:var(--green);}
.strength span{font-size:11.5px;color:var(--ink-soft);margin-left:4px;font-weight:600;}

/* ---------- wizard chrome (Set 2) ---------- */
.wz-progress{margin-top:16px;}
.wz-prow{display:flex;justify-content:space-between;align-items:center;}
.wz-steplabel{font-size:12px;font-weight:600;color:var(--ink-soft);letter-spacing:.2px;}
.wz-steplabel b{color:var(--ink);}
.wdots{display:flex;gap:5px;}
.wdots i{width:7px;height:7px;border-radius:50%;background:#E7DCC8;display:block;}
.wdots i.on{background:linear-gradient(120deg,var(--saffron),var(--gold));}
.wzbar{height:5px;border-radius:3px;background:#EFE4D0;margin-top:9px;overflow:hidden;}
.wzbar i{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,var(--green),#2E8B6A);}
.wz-h{font-size:22px;font-weight:700;letter-spacing:-.2px;color:var(--ink);margin-top:20px;}
.wz-sub-hint{font-size:13px;color:var(--ink-soft);line-height:1.5;margin-top:6px;}
.wz-body{flex:1;display:flex;flex-direction:column;min-height:0;}
.wz-msg{min-height:16px;font-size:12px;color:var(--red);font-weight:600;margin-top:8px;}
.wz-msg.ok{color:var(--green);}
.wz-nav{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:auto;padding-top:14px;}
.wz-nav .btn{margin-top:0;height:50px;width:auto;padding:0 22px;font-size:15px;box-shadow:0 10px 22px rgba(217,164,65,.32);}
.skip-link{font-size:13.5px;font-weight:600;color:var(--ink-soft);text-decoration:none;padding:8px 4px;cursor:pointer;}
.nav-spacer{width:86px;}

/* step 6 · automatic location */
.loccard{background:#fff;border:1.5px solid var(--field-border);border-radius:15px;padding:16px;}
.loccard .loc-head{display:flex;align-items:flex-start;gap:12px;}
.loccard .loc-ic{flex:none;width:42px;height:42px;border-radius:12px;background:var(--green-tint);color:var(--green);display:flex;align-items:center;justify-content:center;}
.loccard .loc-city{font-size:18px;font-weight:700;color:var(--ink);line-height:1.2;}
.loccard .loc-region{font-size:13px;color:var(--ink-soft);margin-top:2px;line-height:1.4;}
.locchip{margin-left:auto;flex:none;display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--green);background:var(--green-tint);border-radius:999px;padding:5px 9px;}
.loc-status{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--ink-soft);margin-top:13px;}
.loc-dot{flex:none;width:8px;height:8px;border-radius:50%;background:#2E8B6A;box-shadow:0 0 0 3px rgba(46,139,106,.18);}
.loc-meta{font-size:12px;color:var(--ink-mute);line-height:1.55;margin-top:9px;}
.loccard.empty .loc-ic{background:#FBF3E2;color:var(--gold);}
.loccard.empty .loc-city{font-size:16.5px;}
.loccard .btn{width:100%;margin-top:14px;height:50px;font-size:15px;}

/* step 1 · photo */
.wz-photo-wrap{display:flex;flex-direction:column;align-items:center;margin-top:22px;}
.wz-avatar{position:relative;width:118px;height:118px;}
.wz-avatar .disc{
  width:118px;height:118px;border-radius:50%;overflow:hidden;
  background:linear-gradient(140deg,#2E8B6A,var(--green) 60%,var(--green-dark));
  display:flex;align-items:center;justify-content:center;
  font-family:Georgia,"Times New Roman",serif;font-size:46px;font-weight:700;color:#FFF3DF;
  box-shadow:0 12px 26px rgba(14,94,70,.3);
}
.wz-avatar .disc img{width:100%;height:100%;object-fit:cover;display:block;}
.wz-cam{
  position:absolute;right:-2px;bottom:-2px;width:38px;height:38px;border-radius:50%;
  background:linear-gradient(135deg,var(--saffron),var(--gold));border:3px solid var(--cream);
  display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;
  box-shadow:0 6px 14px rgba(217,164,65,.45);
}
.btn-upload{
  margin-top:16px;height:44px;padding:0 20px;border-radius:12px;background:#fff;
  border:1.5px solid var(--green);color:var(--green);font-size:14px;font-weight:700;font-family:inherit;
  display:inline-flex;align-items:center;gap:8px;cursor:pointer;
}
.perm-skip{text-align:center;margin-top:14px;}

/* tiles (gender / level / serious) */
.tiles{display:flex;flex-direction:column;gap:11px;margin-top:18px;}
.tile{
  display:flex;align-items:center;gap:14px;text-align:left;width:100%;
  background:#fff;border:1.5px solid var(--field-border);border-radius:15px;
  padding:15px 16px;font-family:inherit;cursor:pointer;position:relative;
}
.tile .tile-ic{
  flex:none;width:46px;height:46px;border-radius:13px;background:#FBF3E2;color:var(--gold);
  display:flex;align-items:center;justify-content:center;font-size:21px;font-weight:700;
}
.tile .tile-tx{display:flex;flex-direction:column;gap:1px;}
.tile .tile-tx b{font-size:15.5px;color:var(--ink);font-weight:700;}
.tile .tile-tx span{font-size:12.5px;color:var(--ink-soft);}
.tile.on{border-color:var(--green);background:var(--green-tint);box-shadow:0 0 0 3px rgba(14,94,70,.1);}
.tile.on .tile-ic{background:var(--green);color:#fff;}
.tile .tick{
  position:absolute;top:12px;right:12px;width:20px;height:20px;border-radius:50%;
  background:var(--green);display:flex;align-items:center;justify-content:center;
}

/* step 3 · language pickers */
.wz-picker-title{font-size:13px;font-weight:700;color:var(--ink);letter-spacing:.2px;margin:16px 0 8px;}
.langsearch{
  display:flex;align-items:center;gap:9px;background:#fff;border:1.5px solid var(--field-border);
  border-radius:12px;padding:0 13px;height:42px;
}
.langsearch:focus-within{border-color:var(--gold);}
.langsearch svg{flex:none;color:#A08C6E;}
.langsearch input{border:none;outline:none;background:transparent;font-size:13.5px;color:var(--ink);width:100%;font-family:inherit;}
.langsearch input::placeholder{color:#B9B2A6;}
.langlist{margin-top:9px;border:1.5px solid var(--field-border);border-radius:13px;background:#fff;overflow:hidden;max-height:172px;overflow-y:auto;}
.langrow{
  display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;background:#fff;border:none;
  border-bottom:1px solid #F4ECDF;font-family:inherit;cursor:pointer;text-align:left;
}
.langrow:last-child{border-bottom:none;}
.langrow .lname{font-size:14px;font-weight:600;color:var(--ink);}
.langrow .lnative{font-size:13px;color:var(--ink-mute);}
.langrow .lcheck{margin-left:auto;color:var(--green);display:flex;}
.langrow.on{background:var(--green-tint);}
.langrow.on .lname{color:var(--green-dark);}
.langlist .more-row{padding:8px 14px;font-size:11.5px;color:var(--ink-mute);background:#FDF9F2;}

/* step 5 · interests */
.igrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px;}
.icard{
  padding:14px 10px;border-radius:13px;background:#fff;border:1.5px solid var(--field-border);
  font-family:inherit;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer;text-align:center;
}
.icard.on{border-color:var(--green);background:var(--green-tint);color:var(--green-dark);box-shadow:0 0 0 3px rgba(14,94,70,.1);}

/* ---------- landing ---------- */
.app-head{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.coin-pill{
  display:inline-flex;align-items:center;gap:7px;background:#fff;border:1.5px solid var(--field-border);
  border-radius:999px;padding:7px 13px 7px 8px;font-size:14.5px;font-weight:700;color:var(--ink);
}
.coin-pill .coin-ic{display:flex;}
.coin-pill.gold{background:linear-gradient(135deg,#FFD34D,#F5A623);border-color:#E8A33D;color:#5C3A00;box-shadow:0 4px 10px rgba(245,166,35,.35);cursor:pointer;font-weight:800;}

/* ---------- BT coin — the one official coin, app-wide ----------
   Markup comes from btCoin(sizePx) in app.js; size is set inline
   via --btc. One 10s cycle: a slow premium 3D flip (rotateY
   0→360 in the first ~35% ≈ 3.5s, then a long calm rest), a
   white-gold shine band sweeping once during the flip, and a
   soft glow pulse peaking mid-flip. Reduced motion: static. */
.btcoin{
  --btc:20px;
  display:inline-flex;flex:none;width:var(--btc);height:var(--btc);
  perspective:calc(var(--btc)*7);vertical-align:middle;
}
.btc-flip{
  position:relative;width:100%;height:100%;transform-style:preserve-3d;
  animation:btcFlip 10s cubic-bezier(.4,.05,.3,1) infinite;
}
.btc-flip svg{
  display:block;
  animation:btcGlow 10s ease-in-out infinite;
}
.btc-shine{
  position:absolute;inset:0;border-radius:50%;overflow:hidden;pointer-events:none;
}
.btc-shine::before{
  content:"";position:absolute;top:-35%;bottom:-35%;left:0;width:42%;
  background:linear-gradient(100deg,rgba(255,255,255,0) 0%,rgba(255,248,220,.9) 50%,rgba(255,255,255,0) 100%);
  transform:translateX(-140%) rotate(18deg);opacity:0;
  animation:btcShine 10s ease-in-out infinite;
}
@keyframes btcFlip{
  0%{transform:rotateY(0deg);}
  35%{transform:rotateY(360deg);}
  100%{transform:rotateY(360deg);}
}
@keyframes btcShine{
  0%,4%{transform:translateX(-140%) rotate(18deg);opacity:0;}
  8%{opacity:1;}
  30%{transform:translateX(330%) rotate(18deg);opacity:1;}
  34%,100%{transform:translateX(330%) rotate(18deg);opacity:0;}
}
@keyframes btcGlow{
  0%,100%{filter:drop-shadow(0 1px 2px rgba(122,72,0,.35)) drop-shadow(0 0 3px rgba(246,183,60,.22));}
  18%{filter:drop-shadow(0 1px 2px rgba(122,72,0,.35)) drop-shadow(0 0 7px rgba(246,183,60,.55));}
  40%{filter:drop-shadow(0 1px 2px rgba(122,72,0,.35)) drop-shadow(0 0 3px rgba(246,183,60,.22));}
}
@media (prefers-reduced-motion: reduce){
  .btc-flip,.btc-flip svg,.btc-shine::before{animation:none !important;}
}
.profile-card{
  margin-top:22px;background:#fff;border:1.5px solid var(--field-border);border-radius:18px;
  padding:24px 20px;text-align:center;
}
.profile-card .wz-avatar{margin:0 auto;}
.profile-card .pc-name{font-size:21px;font-weight:700;margin-top:14px;color:var(--ink);}
.profile-card .pc-langs{font-size:14px;color:var(--ink-soft);margin-top:6px;line-height:1.5;}
.profile-card .pc-langs b{color:var(--green-dark);}
.level-chip{
  display:inline-block;margin-top:11px;font-size:11px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;
  color:var(--green);background:var(--green-tint);border-radius:999px;padding:5px 11px;
}
.profile-card .pc-loc{display:flex;align-items:center;justify-content:center;gap:6px;font-size:13px;color:var(--ink-soft);margin-top:12px;}
.profile-card .pc-loc svg{color:var(--gold);flex:none;}
.btn.logout{margin-top:22px;}
.holding-note{text-align:center;font-size:12.5px;color:var(--ink-mute);line-height:1.55;margin-top:18px;}

/* ---------- tappable input (opens an in-app picker) ---------- */
.input.tap{cursor:pointer;}
.input .dob-text{font-size:14.5px;color:var(--ink);white-space:nowrap;overflow:hidden;}
.input .dob-text.placeholder{color:#B9B2A6;}

/* ---------- in-app sheets (DOB picker · photo cropper) ---------- */
.sheet-overlay{
  position:fixed;inset:0;z-index:80;background:rgba(23,19,16,.5);
  display:flex;align-items:flex-end;justify-content:center;
}
.sheet{
  background:var(--cream);width:100%;max-width:430px;max-height:92dvh;overflow-y:auto;
  border-radius:22px 22px 0 0;padding:22px 22px calc(20px + env(safe-area-inset-bottom));
  box-shadow:0 -14px 40px rgba(23,19,16,.25);animation:sheetUp .22s ease-out;
}
@keyframes sheetUp{from{transform:translateY(26px);opacity:.35;}to{transform:none;opacity:1;}}
.sheet-title{font-size:19px;font-weight:700;color:var(--ink);letter-spacing:-.2px;}
.sheet-sub{font-size:13px;color:var(--ink-soft);margin-top:4px;line-height:1.45;}
.sheet .form-msg{margin-top:12px;}
.sheet-actions{display:flex;align-items:center;gap:10px;margin-top:14px;}
.sheet-actions .btn{flex:1;margin-top:0;height:52px;}
.sheet-actions .btn.secondary{flex:none;height:52px;}

/* DOB picker wheels */
.dob-preview{
  min-height:24px;margin-top:16px;text-align:center;
  font-size:19px;font-weight:700;color:var(--green-dark);letter-spacing:.2px;
}
.dob-wheels{position:relative;display:flex;gap:8px;margin-top:10px;}
.wheel-band{
  position:absolute;left:0;right:0;top:120px;height:40px;transform:translateY(-50%);
  border-top:1.5px solid var(--border);border-bottom:1.5px solid var(--border);
  background:rgba(14,94,70,.05);pointer-events:none;
}
.wheel-col{display:flex;flex-direction:column;min-width:0;}
.wheel-col.day{flex:.75;}
.wheel-col.mon{flex:1.15;}
.wheel-col.yr{flex:1;}
.wheel{
  height:240px;overflow-y:auto;padding:100px 0;scrollbar-width:none;
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 22%,#000 78%,transparent);
  mask-image:linear-gradient(180deg,transparent,#000 22%,#000 78%,transparent);
}
.wheel::-webkit-scrollbar{display:none;}
.wheel-item{
  display:block;width:100%;height:40px;line-height:40px;padding:0;
  background:none;border:none;font-family:inherit;font-size:15px;
  color:var(--ink-mute);text-align:center;cursor:pointer;
}
.wheel-item.on{color:var(--green-dark);font-weight:700;font-size:16.5px;}
.wheel-label{
  margin-top:8px;text-align:center;font-size:11px;font-weight:700;
  letter-spacing:.8px;text-transform:uppercase;color:var(--ink-mute);
}

/* photo cropper */
.crop-stage{
  position:relative;width:min(300px,78vw);aspect-ratio:1/1;margin:18px auto 2px;
  border-radius:14px;overflow:hidden;background:#241C14;touch-action:none;
}
.crop-stage img{
  position:absolute;left:0;top:0;transform-origin:0 0;max-width:none;
  user-select:none;-webkit-user-select:none;
}
.crop-mask{
  position:absolute;inset:0;border-radius:50%;pointer-events:none;
  border:2px solid rgba(255,248,240,.95);
  box-shadow:0 0 0 999px rgba(23,19,16,.55);
}
.crop-zoom{display:flex;align-items:center;gap:12px;max-width:320px;margin:16px auto 0;}
.crop-zoom .crop-zic{flex:none;width:16px;text-align:center;font-size:19px;font-weight:700;color:var(--ink-soft);}
.crop-zoom input[type="range"]{flex:1;height:28px;accent-color:var(--green);cursor:pointer;}

/* ---------- Set 3 · app shell ----------
   Ported from the owner-approved design-v1/set3-shell-home-v2.html
   (app bar, drawer, events slot, profile frames, bottom tab bar).
   Shell-mode strips #app's page padding so the shell owns the full
   column edge-to-edge; viewShell adds the class, login/wizard
   remove it. */
#app.shell-mode{padding:0;height:100dvh;transition:height .25s ease;}
.shell{height:100%;display:flex;flex-direction:column;position:relative;}
.sh-main{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;}

.appbar{
  flex:none;display:flex;align-items:center;gap:8px;padding:12px 12px 10px;
  background:var(--cream);border-bottom:1px solid var(--border);
}
.appbar-title{flex:1;min-width:0;text-align:center;font-size:17.5px;font-weight:700;color:var(--ink);letter-spacing:.1px;}
/* Fix 56.1 · with the coin pill added, the pill tightens on narrow
   phones so the + button never falls off the edge. (The tug-scene
   hide lives at the end of this file — see Fix 56.2.) */
@media (max-width:400px){
  .coin-pill.gold{padding:5px 10px 5px 6px;}
}
.icon-btn{
  flex:none;width:40px;height:40px;border-radius:50%;background:#fff;border:1.5px solid var(--field-border);
  display:flex;align-items:center;justify-content:center;color:var(--ink);cursor:pointer;padding:0;
}
.icon-btn svg{width:20px;height:20px;}

/* animated app-bar lockup — "fighting for biryani": two figures in a
   tug-of-war over a handi, scene rocking gently around the handi base,
   figures bobbing against each other, steam curling off the lid; the
   wordmark letters ride a small staggered wave. All motion is CSS;
   markup is built by brandLockupHtml() in app.js. */
.brand-lockup{display:flex;align-items:center;justify-content:center;gap:8px;}
.bt-scene{display:inline-flex;flex:none;}
.bt-scene svg{
  height:32px;width:auto;display:block;
  animation:tugRock 2.2s ease-in-out infinite alternate;transform-origin:50% 88%;
}
@keyframes tugRock{from{transform:rotate(-2.5deg);}to{transform:rotate(2.5deg);}}
.tug-fig{transform-box:fill-box;}
.tug-left{animation:tugBob 1.1s ease-in-out infinite alternate;}
.tug-right{animation:tugBob 1.1s ease-in-out infinite alternate-reverse;}
@keyframes tugBob{from{transform:translateY(0);}to{transform:translateY(1.6px);}}
.tug-steam{opacity:0;animation:tugSteam 2.6s ease-in-out infinite;}
.tug-steam.s2{animation-delay:1.3s;}
@keyframes tugSteam{0%{opacity:0;transform:translateY(1.6px);}35%{opacity:.85;}100%{opacity:0;transform:translateY(-2.2px);}}
.bt-word{white-space:nowrap;}
.bt-l{display:inline-block;animation:btWave 2.4s ease-in-out infinite;}
.bt-green{color:var(--green);}
.bt-saf{color:var(--saffron);}
@keyframes btWave{0%,100%{transform:translateY(0);}50%{transform:translateY(-1.5px);}}

.searchwrap{padding:12px 16px 4px;}
.search{
  display:flex;align-items:center;gap:9px;background:#fff;border:1.5px solid var(--field-border);
  border-radius:13px;height:46px;padding:0 14px;color:#A08C6E;
}
.search:focus-within{border-color:var(--gold);}
.search svg{flex:none;}
.search input{border:none;outline:none;background:transparent;font-size:14px;color:var(--ink);width:100%;font-family:inherit;}
.search input::placeholder{color:#B9B2A6;}

.chips{display:flex;gap:8px;padding:10px 16px 2px;}
.chip{
  font-size:12.5px;font-weight:600;color:var(--ink-soft);background:#fff;
  border:1.5px solid var(--field-border);border-radius:999px;padding:6px 15px;cursor:pointer;
}
.chip.active{background:linear-gradient(135deg,#0E5E46,#128A66);border-color:#0E5E46;color:#fff;box-shadow:0 4px 10px rgba(14,94,70,.25);}

/* animated profile frames (Shop cosmetics) — gold laurel is the
   default frame for everyone until the Shop sells more */
.pf{position:relative;flex:none;width:60px;height:60px;display:flex;align-items:center;justify-content:center;}
.pf-av{
  position:relative;z-index:1;width:50px;height:50px;border-radius:50%;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(140deg,#2E8B6A,var(--green) 60%,var(--green-dark));
  font-family:Georgia,"Times New Roman",serif;font-weight:700;font-size:19px;color:#FFF3DF;
}
.pf-av img{width:100%;height:100%;object-fit:cover;display:block;}
/* fix 24: the frame/effect art paints ON TOP of the face (owner rule —
   HelloTalk-style: decoration overlays the photo's rim). The ring is
   masked to an annulus whose hole matches the old ::after cream disc
   (inset 4px = hole diameter width-8px), so its opaque gradient centre
   can never cover the photo now that the layer sits above it; the old
   .pf-ring::after cream disc is gone, superseded by this mask. */
.pf-ring{position:absolute;inset:0;border-radius:50%;pointer-events:none;z-index:2;
  -webkit-mask:radial-gradient(closest-side,transparent calc(100% - 5px),#000 calc(100% - 4px));
  mask:radial-gradient(closest-side,transparent calc(100% - 5px),#000 calc(100% - 4px));}
@keyframes pfSpin{to{transform:rotate(360deg);}}
@keyframes pfSpark{0%,100%{transform:scale(.85) rotate(0deg);opacity:.75;}50%{transform:scale(1.25) rotate(20deg);opacity:1;}}
.pf-spark{position:absolute;top:-3px;right:-3px;z-index:3;pointer-events:none;animation:pfSpark 2.6s ease-in-out infinite;filter:drop-shadow(0 1px 2px rgba(122,72,0,.4));}
.pf-gold .pf-ring{
  background:conic-gradient(from 0deg,#8A5A03,#D9A441 14%,#FFF3C4 24%,#F6B73C 34%,#8A5A03 52%,#D9A441 68%,#FFEFB0 80%,#8A5A03 100%);
  animation:pfSpin 7s linear infinite;box-shadow:0 2px 8px rgba(176,124,10,.35);
}
.pf-lg{width:68px;height:68px;}
.pf-lg .pf-av{width:56px;height:56px;font-size:21px;}

/* side drawer */
.sh-backdrop{position:absolute;inset:0;background:rgba(23,19,16,.48);z-index:30;}
.sh-drawer{
  position:absolute;top:0;left:0;bottom:0;width:90vw;max-width:430px;z-index:31;background:var(--cream);
  box-shadow:18px 0 44px rgba(0,0,0,.28);display:flex;flex-direction:column;
  border-radius:0 26px 26px 0;overflow:hidden;
  transform:translateX(-105%);visibility:hidden;
  transition:transform .38s cubic-bezier(.32,.72,.24,1),visibility 0s linear .38s;
}
.sh-drawer.open{transform:none;visibility:visible;transition:transform .38s cubic-bezier(.32,.72,.24,1);}
.drawer-head{
  flex:none;padding:18px 18px 15px;background:var(--green-tint);border-bottom:1px solid var(--border);
  display:flex;align-items:center;gap:13px;cursor:pointer;
}
.drawer-id{flex:1;min-width:0;}
.drawer-name{font-size:17.5px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.drawer-sub{font-size:12.5px;color:var(--ink-soft);margin-top:2px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.drawer-x{
  flex:none;width:34px;height:34px;border-radius:50%;background:#fff;border:1.5px solid var(--field-border);
  display:flex;align-items:center;justify-content:center;color:var(--ink-soft);cursor:pointer;padding:0;
}
.drawer-x svg{width:16px;height:16px;}
.drawer-body{flex:1;padding:10px 12px;overflow-y:auto;display:flex;flex-direction:column;}
.menu-group{padding:6px 0;}
.menu-group + .menu-group{border-top:1px solid var(--border);}
.menu-item{
  display:flex;align-items:center;gap:13px;padding:10px;border-radius:12px;cursor:pointer;
  font-size:14.5px;font-weight:600;color:var(--ink);
}
.menu-item > svg{flex:none;width:21px;height:21px;color:var(--green-dark);}
.menu-item .chev{margin-left:auto;flex:none;color:var(--ink-mute);display:flex;align-items:center;}
.menu-item .m-right{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:14px;font-weight:700;color:var(--ink);}
.menu-item .m-right + .chev{margin-left:2px;}
.menu-item.logout{color:var(--red);}
.menu-item.logout > svg{color:var(--red);}
.drawer-foot{margin-top:auto;border-top:1px solid var(--border);padding:8px 0 6px;}
.pill-new{font-size:10px;font-weight:700;letter-spacing:.3px;color:#B45A06;background:#FDEBD8;border-radius:999px;padding:3px 8px;}

/* drawer events slot (admin events arrive later) */
.events{padding:12px 4px 4px;}
.ev-card{border-radius:16px;padding:14px 14px 13px;color:#fff;box-shadow:0 8px 18px rgba(28,36,32,.16);}
.ev-1{background:linear-gradient(120deg,#0A4634,var(--green) 55%,#2AA08A);}
.ev-top{display:flex;align-items:center;gap:9px;}
.ev-emoji{font-size:23px;line-height:1;}
.ev-title{font-size:14.5px;font-weight:700;line-height:1.25;}
.ev-sub{font-size:11.5px;font-weight:600;opacity:.88;margin-top:8px;}

/* Biryani Talk tab · empty chat state */
.empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 42px 30px;}
.empty-mark{
  width:132px;height:132px;border-radius:50%;background:var(--green-tint);
  display:flex;align-items:center;justify-content:center;margin-bottom:22px;
}
.empty-mark svg{width:104px;height:auto;}
.empty h3{font-size:21px;font-weight:700;color:var(--ink);letter-spacing:-.2px;}
.empty p{font-size:13.5px;color:var(--ink-soft);line-height:1.55;margin-top:8px;}
.empty .btn{width:auto;padding:0 30px;height:52px;font-size:15px;margin-top:22px;}

/* placeholder tabs (Partners / Moments / Voice room / Me) */
.sh-soon{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 42px 30px;}
.soon-disc{
  width:104px;height:104px;border-radius:50%;background:var(--green-tint);color:var(--green);
  display:flex;align-items:center;justify-content:center;margin-bottom:20px;
}
.soon-disc svg{width:44px;height:44px;}
.sh-soon h3{font-size:21px;font-weight:700;color:var(--ink);letter-spacing:-.2px;}
.soon-pill{
  margin-top:10px;font-size:11px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;
  color:#B45A06;background:#FDEBD8;border-radius:999px;padding:5px 12px;
}
.sh-soon p{font-size:13.5px;color:var(--ink-soft);line-height:1.55;margin-top:10px;}

/* bottom navigation */
.tabbar{
  /* Fix 60: the bottom menu FLOATS — a white pill hovering above
     the screen edge on a soft shadow, not a flat bar. */
  flex:none;display:flex;background:#fff;border:1px solid var(--border);border-radius:999px;
  box-shadow:0 18px 36px rgba(14,94,70,.16),0 2px 6px rgba(14,94,70,.06);
  margin:8px 12px calc(10px + env(safe-area-inset-bottom));padding:7px 6px;
}
.tab{
  flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;
  background:none;border:none;color:var(--ink-mute);font-size:10.5px;font-weight:600;letter-spacing:.1px;
  cursor:pointer;padding:4px 0 2px;border-radius:12px;position:relative;
}
.tab svg{display:block;width:24px;height:24px;}
.tab.active{color:var(--green);background:var(--green-tint);border-radius:999px;}
.tab.active::before{content:none;}

/* ---------- Fix 21 · full-screen shop pages ----------
   Store / Backpack / Gift Store take the whole screen (HelloTalk
   pattern): while .shell carries .shop-full (toggled centrally by
   syncShopChrome() in app.js, off the STORE/BACKPACK/GIFT view
   flags), the shell app bar and bottom tab bar hide. .shell is a
   flex column and .sh-main is already flex:1, so main simply takes
   the freed height — the screens keep only their own header.
   Sticky offsets need NO change: .lvl-head (sticky top:0) and .cats
   (sticky top:62px, the head's own height) stick inside #sh-main,
   whose top edge never involved the app bar. The tab bar was a flex
   sibling, never an overlay, so no content ever reserved space for
   it — the shop screens' 16px end spacers stay as they are; the one
   adjustment keeps the scroll end clear of the home indicator now
   that the tab bar's safe-area padding is gone (env() is 0 on
   devices without one, so no dead gap appears there). */
.shell.shop-full .appbar,
.shell.shop-full .tabbar{display:none;}
.shell.shop-full .sh-main{padding-bottom:env(safe-area-inset-bottom);}

/* toast */
.toast{
  position:fixed;left:50%;bottom:calc(30px + env(safe-area-inset-bottom));z-index:120;
  transform:translate(-50%,14px);opacity:0;pointer-events:none;
  background:#1C2420;color:#FFF8F0;font-size:13.5px;font-weight:600;
  padding:11px 18px;border-radius:999px;box-shadow:0 12px 30px rgba(23,19,16,.35);
  max-width:88vw;text-align:center;transition:opacity .25s ease,transform .25s ease;
}
.toast.show{opacity:1;transform:translate(-50%,0);}

@media (prefers-reduced-motion: reduce){
  .pf-ring,.pf-spark{animation:none !important;}
  .sh-drawer{transition:none;}
  .bt-scene svg,.tug-left,.tug-right,.tug-steam,.bt-l{animation:none !important;}
  .tug-steam{opacity:.5;}
}

/* ---------- Set 4 · levels, tags & points ----------
   Ported from the owner-approved design-v1/set4-levels-event-v2.html
   (the 7 animated level tags + the My Level screen). The tag pill
   (.tag.tag-l1…l7) is built by tagHtml() in app.js; the My Level
   screen renders into the shell main area under a .lvl-head bar. */
.card{background:#fff;border:1.5px solid var(--field-border);border-radius:18px;box-shadow:0 16px 32px rgba(14,94,70,.09),0 2px 6px rgba(14,94,70,.05);}
.btn-block{width:100%;}
.btn-off{opacity:.55;filter:saturate(.65);}
.sec-cap{font-size:10.5px;font-weight:700;letter-spacing:1.1px;text-transform:uppercase;color:var(--ink-mute);}

/* drawer header: name + tag on one line (tag clips/wraps gracefully) */
.drawer-name-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0;}
.drawer-name-row .tag{max-width:100%;}
.drawer-name-row .tag .tag-tx{overflow:hidden;text-overflow:ellipsis;}

/* ================= LEVEL TAGS ================= */
.tag{
  --tg-ic:13px;position:relative;display:inline-flex;align-items:center;gap:4px;flex:none;
  border-radius:999px;padding:3px 9px 3px 6px;font-size:11px;font-weight:800;
  letter-spacing:.2px;line-height:1.25;white-space:nowrap;overflow:hidden;
}
.tag svg{width:var(--tg-ic);height:var(--tg-ic);flex:none;position:relative;z-index:1;}
.tag .tag-tx{position:relative;z-index:1;}
.tag-md{--tg-ic:15px;font-size:12.5px;padding:4px 11px 4px 8px;gap:5px;}
.tag-lg{--tg-ic:23px;font-size:17.5px;padding:9px 20px 9px 13px;gap:8px;letter-spacing:.3px;}
/* shine sweep shared by L1 / L6 */
@keyframes tagSweep{0%,55%{transform:translateX(-170%) rotate(16deg);}88%,100%{transform:translateX(380%) rotate(16deg);}}
.tag-sweep::after{
  content:"";position:absolute;top:-45%;bottom:-45%;left:0;width:34%;z-index:0;pointer-events:none;
  background:linear-gradient(100deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.6) 50%,rgba(255,255,255,0) 100%);
  transform:translateX(-170%) rotate(16deg);animation:tagSweep 3.6s ease-in-out infinite;
}
/* L1 · Sprout — soft green, leaf shimmer */
.tag-l1{background:#E4F5E9;color:#177245;border:1.5px solid #BFE6CC;}
/* L2 · Masala Mixer — orange, sparkle pulse */
.tag-l2{background:linear-gradient(120deg,#FFE3C2,#FFC384);color:#9A4A00;border:1.5px solid #F0AC62;animation:tagPulseGlow 1.9s ease-in-out infinite;}
.tag-l2 svg{animation:tagPulse 1.9s ease-in-out infinite;}
@keyframes tagPulse{0%,100%{transform:scale(1) rotate(0deg);}50%{transform:scale(1.3) rotate(10deg);}}
@keyframes tagPulseGlow{0%,100%{box-shadow:0 0 0 rgba(232,137,12,0);}50%{box-shadow:0 0 9px rgba(232,137,12,.55);}}
/* L3 · Dum Cook — copper, breathing glow */
.tag-l3{background:linear-gradient(120deg,#F6DFC8,#EBC096);color:#7C3F10;border:1.5px solid #D29A63;animation:tagBreathe 3s ease-in-out infinite;}
@keyframes tagBreathe{0%,100%{box-shadow:0 0 0 rgba(184,115,51,0);}50%{box-shadow:0 0 12px rgba(184,115,51,.6);}}
/* L4 · Biryani Star — gold, twinkling star */
.tag-l4{background:linear-gradient(120deg,#F8CD6B,#EFA91F);color:#5C3A00;border:1.5px solid #C07F0A;box-shadow:0 2px 8px rgba(217,164,65,.4);}
.tag-l4 svg{animation:tagTwinkle 1.6s ease-in-out infinite;filter:drop-shadow(0 0 3px rgba(255,246,216,.9));}
@keyframes tagTwinkle{0%,100%{transform:scale(1) rotate(0deg);opacity:1;}50%{transform:scale(1.4) rotate(14deg);opacity:.7;}}
/* L5 · Handi Hero — fiery gradient slide */
.tag-l5{background:linear-gradient(100deg,#B03A1E,#E8890C 30%,#F6B73C 50%,#E8890C 70%,#B03A1E);background-size:230% 100%;color:#fff;border:1.5px solid #8F2C12;animation:tagFire 3.2s linear infinite;text-shadow:0 1px 2px rgba(90,20,0,.45);box-shadow:0 2px 9px rgba(217,90,20,.4);}
@keyframes tagFire{0%{background-position:0% 0;}100%{background-position:230% 0;}}
/* L6 · Dum Master — royal purple & gold, shine sweep */
.tag-l6{background:linear-gradient(120deg,#3E2266,#5B3390);color:#F3D27A;border:1.5px solid #C9A227;box-shadow:0 2px 9px rgba(75,42,122,.4);}
/* L7 · Biryani Badshah — gold-rainbow shine sweep + crown + sparkles */
.tag-l7{
  background:linear-gradient(110deg,#8A5A03,#D9A441 20%,#FFF3C4 34%,#F2A7C3 47%,#9FD8FF 58%,#A8E6B0 68%,#F6B73C 82%,#8A5A03);
  background-size:250% 100%;color:#3A2400;border:1.5px solid #8A5A03;
  animation:tagRainbow 4.5s linear infinite,tagBreatheGold 2.6s ease-in-out infinite;
}
@keyframes tagRainbow{0%{background-position:0% 0;}100%{background-position:250% 0;}}
@keyframes tagBreatheGold{0%,100%{box-shadow:0 0 4px rgba(246,183,60,.45);}50%{box-shadow:0 0 13px rgba(246,183,60,.85);}}
.tag .tag-sp{position:absolute;z-index:2;pointer-events:none;animation:tagTwinkle 1.5s ease-in-out infinite;width:9px;height:9px;}
.tag .tag-sp.sp1{top:-1px;right:5px;}
.tag .tag-sp.sp2{bottom:-1px;right:16px;animation-delay:.7s;width:7px;height:7px;}
.tag-lg .tag-sp.sp1{right:9px;width:13px;height:13px;}
.tag-lg .tag-sp.sp2{right:26px;width:9px;height:9px;}

/* ================= MY LEVEL SCREEN ================= */
.lvl-head{
  flex:none;display:flex;align-items:center;gap:10px;padding:12px 16px 10px;
  border-bottom:1px solid var(--border);
  position:sticky;top:0;z-index:6;background:var(--cream);
}
.lvl-title{flex:1;text-align:center;font-size:16.5px;font-weight:700;color:var(--ink);}
.lvl-sp{width:40px;flex:none;}
.lvl-loading{padding:44px 20px;text-align:center;font-size:13.5px;font-weight:600;color:var(--ink-soft);}
.hero-card{margin:12px 16px 0;padding:13px 16px 12px;text-align:center;background:linear-gradient(160deg,#FFFDF8,#FFF3DC);border:1.5px solid #F0DCAE;border-radius:20px;box-shadow:0 6px 18px rgba(217,164,65,.16);}
.hero-card .tag{margin:0 auto;}
.hero-earn{margin-top:9px;font-size:15px;font-weight:700;color:var(--ink);}
.hero-earn b{color:var(--green);}
.pts-card{margin:10px 16px 0;padding:11px 16px;display:flex;flex-direction:column;gap:9px;}
.pts-card .btn{height:46px;}
.pts-top{display:flex;align-items:center;gap:12px;}
.pts-ic{flex:none;width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--green),#2AA08A);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 10px rgba(14,94,70,.3);}
.pts-num{font-size:21px;font-weight:800;color:var(--ink);line-height:1.1;}
.pts-num small{font-size:12.5px;font-weight:700;color:var(--ink-soft);}
.pts-eq{font-size:12.5px;color:var(--ink-soft);font-weight:600;}
.pts-eq b{color:var(--green);font-size:14px;}
.pts-note{font-size:11.5px;color:var(--ink-mute);font-weight:600;text-align:center;margin-top:-4px;}
.prog{margin:10px 16px 0;padding:10px 16px;}
.prog-top{display:flex;align-items:baseline;gap:8px;}
.prog-top .p-next{font-size:13.5px;font-weight:700;color:var(--ink);}
.prog-top .p-pct{margin-left:auto;font-size:13px;font-weight:800;color:var(--saffron);}
.prog-bar{height:9px;border-radius:99px;background:#F1E6D2;margin-top:9px;overflow:hidden;}
.prog-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--saffron),var(--gold));}
.prog-sub{font-size:12px;color:var(--ink-soft);font-weight:600;margin-top:8px;}
.ladder{padding:8px 16px 6px;}
.lad-row{display:flex;align-items:center;gap:10px;padding:5px 10px;border-radius:13px;}
.lad-row + .lad-row{margin-top:2px;}
.lad-row .tr-pct{flex:none;width:36px;font-size:13.5px;font-weight:800;color:var(--ink);}
.lad-row .tr-unlock{flex:1;font-size:11.5px;color:var(--ink-soft);font-weight:600;}
.lad-row .tr-thr{flex:none;font-size:10.5px;color:var(--ink-mute);font-weight:700;white-space:nowrap;}
.lad-row .lock{flex:none;color:var(--ink-mute);display:flex;}
.lad-row.now{background:#FFF6E3;border:1.5px solid #F0DCAE;}
.lad-row.locked{opacity:.62;}
.tag-stack{display:flex;flex-direction:column;align-items:flex-start;gap:4px;}
.start-pill{flex:none;font-size:9.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--green);background:#E7F4EC;border:1px solid #BFE0CC;padding:2.5px 8px;border-radius:999px;white-space:nowrap;}
.you-pill{flex:none;font-size:10px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:#fff;background:var(--green);border-radius:999px;padding:3px 9px;}

@media (prefers-reduced-motion: reduce){
  .tag,.tag svg,.tag-sweep::after,.tag .tag-sp{animation:none !important;}
}

/* ---------- Set 4B · events (Dum Fest) ----------
   Ported from the owner-approved design-v1/set4-levels-event-v2.html
   frames 3–4: the event screen (Event · Earn · Leaderboard), the
   countdown, missions, rewards and the Golden Handi prize frame.
   The drawer banner reuses .ev-card with .ev-2/.ev-3 style variants. */
.lvl-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ev-tap{cursor:pointer;}
.ev-cta{font-size:11px;font-weight:800;margin-top:7px;opacity:.95;}
.ev-2{background:linear-gradient(120deg,#5E1220,#7C2D3E 55%,#C4502F);}
.ev-3{background:linear-gradient(120deg,#96690A,#C07F0A 55%,#E8890C);}

/* event screen tabs */
.evt-tabs{display:flex;gap:6px;margin:10px 16px 0;background:#fff;border:1.5px solid var(--field-border);border-radius:999px;padding:4px;flex:none;}
.evt-tab{flex:1;text-align:center;font-size:13px;font-weight:700;color:var(--ink-soft);border-radius:999px;padding:8px 0;cursor:pointer;}
.evt-tab.active{background:var(--green);color:#fff;box-shadow:0 4px 10px rgba(14,94,70,.3);}

/* fest banner (3 admin-chosen styles) */
.fest-banner{margin:12px 16px 0;border-radius:20px;padding:15px 16px;color:#fff;position:relative;overflow:hidden;box-shadow:0 10px 22px rgba(10,70,52,.3);display:flex;align-items:center;gap:10px;flex:none;}
.fest-green{background:linear-gradient(120deg,#0A4634,#0E5E46 55%,#177E70);}
.fest-maroon{background:linear-gradient(120deg,#4A0E1A,#7C2D3E 55%,#C4502F);box-shadow:0 10px 22px rgba(74,14,26,.3);}
.fest-gold{background:linear-gradient(120deg,#7A4A00,#B97A06 55%,#E8890C);box-shadow:0 10px 22px rgba(122,74,0,.3);}
.fest-banner::before{content:"";position:absolute;width:170px;height:170px;border-radius:50%;background:rgba(246,183,60,.16);top:-90px;right:-40px;}
.fest-banner::after{content:"";position:absolute;width:90px;height:90px;border-radius:50%;background:rgba(255,255,255,.07);bottom:-50px;left:34%;}
.fest-tx{flex:1;position:relative;z-index:1;min-width:0;}
.fest-name{font-family:Georgia,"Times New Roman",serif;font-size:19.5px;font-weight:700;line-height:1.2;}
.fest-sub{font-size:12px;font-weight:600;opacity:.9;margin-top:4px;}
.fest-art{flex:none;position:relative;z-index:1;}

/* countdown */
.cd-row{display:flex;align-items:center;gap:7px;padding:12px 16px 0;flex:none;flex-wrap:wrap;}
.cd-lab{font-size:12px;font-weight:700;color:var(--ink-soft);margin-right:2px;}
.cd-chip{background:#fff;border:1.5px solid var(--field-border);border-radius:10px;padding:5px 9px;font-size:13px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;box-shadow:0 2px 6px rgba(28,36,32,.05);}
.cd-chip b{color:var(--saffron);font-weight:800;}
.cd-live{margin-left:auto;display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:800;letter-spacing:.6px;color:var(--red);}
.cd-live i{width:7px;height:7px;border-radius:50%;background:var(--red);animation:tagPulse 1.4s ease-in-out infinite;}

/* my fest status */
.stat-card{margin:12px 16px 0;padding:11px 16px;display:flex;align-items:center;gap:10px;flex:none;}
.stat-card .st-lab{font-size:12px;font-weight:700;color:var(--ink-soft);}
.stat-card .st-val{font-size:16.5px;font-weight:800;color:var(--ink);margin-top:1px;}
.stat-rank{margin-left:auto;text-align:right;flex:none;}
.stat-rank .r-num{font-size:16.5px;font-weight:800;color:var(--green);}
.stat-rank .r-lab{font-size:10.5px;font-weight:700;color:var(--ink-mute);letter-spacing:.5px;text-transform:uppercase;}
.ev-join-tx{flex:1;min-width:0;}
.ev-join-btn{width:auto;flex:none;padding:0 22px;height:46px;}

/* missions */
.missions{padding:13px 16px 0;flex:none;}
.mis-row{display:flex;align-items:center;gap:11px;padding:8px 0;}
.mis-row + .mis-row{border-top:1px solid #F4EBDD;}
.mis-ic{flex:none;width:36px;height:36px;border-radius:50%;background:var(--green-tint);color:var(--green);display:flex;align-items:center;justify-content:center;}
.mis-ic svg{width:19px;height:19px;}
.mis-ic.done{background:var(--green);color:#fff;}
.mis-main{flex:1;min-width:0;}
.mis-name{font-size:13.5px;font-weight:700;color:var(--ink);}
.mis-bar{height:6px;border-radius:99px;background:#F1E6D2;margin-top:6px;overflow:hidden;}
.mis-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--saffron),var(--gold));}
.mis-fill.full{background:var(--green);}
.mis-side{flex:none;text-align:right;}
.mis-prog{font-size:12.5px;font-weight:800;color:var(--ink);}
.mis-prog.done{color:var(--green);}
.mis-pts{font-size:11px;font-weight:700;color:var(--saffron);margin-top:2px;}
.ev-note{font-size:11.5px;color:var(--ink-mute);font-weight:600;line-height:1.5;padding:8px 18px 0;}

/* rewards card + Golden Handi frame */
.reward{margin:12px 16px 0;padding:12px 14px;display:flex;align-items:center;gap:13px;background:linear-gradient(150deg,#FFFDF8,#FFF3DC);border:1.5px solid #F0DCAE;border-radius:18px;flex:none;}
.reward .rw-tx{flex:1;min-width:0;}
.rw-line1{font-size:13.5px;font-weight:800;color:var(--ink);line-height:1.35;}
.rw-line1 b{color:var(--saffron);}
.rw-line2{font-size:12px;font-weight:600;color:var(--ink-soft);line-height:1.45;margin-top:4px;}
.rw-line2 b{color:var(--ink);}
.pf-handi{width:88px;height:88px;}
.pf-handi .pf-av{width:70px;height:70px;font-size:21px;}
.pf-handi .pf-ring{background:conic-gradient(from 0deg,#7A4A00,#D9A441 12%,#FFF3C4 20%,#F6B73C 30%,#B57E0B 46%,#FFEFB0 58%,#D9A441 72%,#FFF8DC 84%,#7A4A00 100%);animation:pfSpin 6s linear infinite;box-shadow:0 0 0 2px #FFF3C4,0 0 16px rgba(246,183,60,.65),0 4px 12px rgba(122,72,0,.4);}
.pf-handi .pf-ring{-webkit-mask:radial-gradient(closest-side,transparent calc(100% - 6px),#000 calc(100% - 5px));mask:radial-gradient(closest-side,transparent calc(100% - 6px),#000 calc(100% - 5px));}
.pf-charm{position:absolute;top:-11px;left:50%;transform:translateX(-50%);z-index:4;pointer-events:none;animation:charmBob 2.8s ease-in-out infinite;filter:drop-shadow(0 2px 3px rgba(122,72,0,.5));}
@keyframes charmBob{0%,100%{transform:translateX(-50%) translateY(0);}50%{transform:translateX(-50%) translateY(-2.5px);}}
.pf-handi .pf-spark{top:-6px;right:-6px;}
.reward .pf-handi{width:64px;height:64px;}
.reward .pf-handi .pf-av{width:50px;height:50px;font-size:18px;}
.reward .pf-charm{top:-9px;}

/* earn tab */
.earn-head{padding:12px 16px 0;font-size:15.5px;font-weight:800;color:var(--ink);flex:none;}
.step{margin:8px 16px 0;padding:9px 12px;display:flex;gap:11px;align-items:flex-start;flex:none;}
.step-num{flex:none;width:24px;height:24px;border-radius:50%;background:var(--green);color:#fff;font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center;margin-top:1px;}
.step-ic{flex:none;width:40px;height:40px;border-radius:13px;background:var(--green-tint);color:var(--green);display:flex;align-items:center;justify-content:center;}
.step-ic svg{width:20px;height:20px;}
.step-main{flex:1;min-width:0;}
.step-title{font-size:14px;font-weight:800;color:var(--ink);display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.step-sub{font-size:12px;color:var(--ink-soft);font-weight:600;margin-top:2px;line-height:1.45;}
.step-sub b{color:var(--green);}
.step-sub .btcoin{vertical-align:-3px;}
.step-arrow{display:flex;justify-content:center;padding:1px 0 0;color:var(--gold);flex:none;}
.mini-table{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;margin-top:7px;}
.mini-cell{display:flex;align-items:center;gap:7px;min-width:0;}
.mini-cell .tag{max-width:100%;}
.mini-cell .tag .tag-tx{overflow:hidden;text-overflow:ellipsis;}
.mc-pct{font-size:12.5px;font-weight:800;color:var(--ink);flex:none;}
.example{margin:10px 16px 0;padding:11px 14px;background:linear-gradient(150deg,#FFFDF8,#FFF3DC);border:1.5px solid #F0DCAE;border-radius:18px;flex:none;}
.ex-head{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:800;color:var(--ink);}
.ex-row{display:flex;align-items:center;gap:9px;margin-top:7px;}
.ex-row .ex-val{margin-left:auto;font-size:13px;font-weight:700;color:var(--ink-soft);white-space:nowrap;}
.ex-row .ex-val b{color:var(--green);font-size:14.5px;}
.earn-cta{padding:10px 16px 4px;flex:none;}

/* leaderboard tab */
.lb-list{padding:6px 16px 0;}
.lb-row{display:flex;align-items:center;gap:11px;padding:9px 6px;border-radius:13px;}
.lb-row + .lb-row{border-top:1px solid #F4EBDD;}
.lb-row.me{background:#FFF6E3;}
.lb-rank{flex:none;width:22px;text-align:center;font-size:15px;font-weight:800;color:var(--ink-mute);}
.lb-rank.top{color:#B97A06;font-size:17px;}
.lb-av{flex:none;width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--saffron),var(--gold));color:#fff;font-size:16px;font-weight:800;display:flex;align-items:center;justify-content:center;}
.lb-main{flex:1;min-width:0;}
.lb-name{font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.lb-tag{margin-top:3px;}
.lb-pts{flex:none;text-align:right;}
.lb-pts .p-val{font-size:14px;font-weight:800;color:var(--ink);}
.lb-pts .p-lab{display:block;font-size:9.5px;font-weight:700;letter-spacing:.7px;color:var(--ink-mute);text-transform:uppercase;margin-top:1px;}
.lb-me{margin:12px 16px 0;padding:11px 14px;background:var(--green-tint);border:1.5px solid #CFE7DA;border-radius:13px;font-size:13px;font-weight:600;color:var(--ink);text-align:center;}
.lb-me b{color:var(--green);}
.ev-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 42px 30px;}
.ev-empty .empty-mark{margin-bottom:14px;}
.ev-empty h3{font-size:21px;font-weight:700;color:var(--ink);letter-spacing:-.2px;}
.ev-empty p{font-size:13.5px;color:var(--ink-soft);line-height:1.55;margin-top:8px;}

@media (prefers-reduced-motion: reduce){
  .pf-handi .pf-ring,.pf-charm,.cd-live i{animation:none !important;}
}

/* ================= Set 15 · Store / Backpack / Gift Store =================
   Sets 6+7 built for real. Item art is CSS keyed by art_key (ported
   from the approved designs); uploaded media replaces the art. */

/* --- profile-frame variants (Set 6A .pf family, extends fix 7) --- */
.pf-saffron .pf-ring{background:conic-gradient(from 210deg,#FFD23E,#FF9933,#FF5E62,#FFD23E);box-shadow:0 0 12px rgba(255,140,40,.55),inset 0 0 0 2px #FFF3D6;}
.pf-crown .pf-ring{background:conic-gradient(from 200deg,#FFE082,#F6B73C,#B97F08,#FFE082);box-shadow:0 0 12px rgba(246,183,60,.55),inset 0 0 0 2px #FFF3D6;}
.pf-leaf .pf-ring{background:conic-gradient(from 210deg,#B7F0C8,#37C978,#0E5E46,#B7F0C8);box-shadow:0 0 12px rgba(55,201,120,.5),inset 0 0 0 2px #E9FFF2;}
.pf-fire .pf-ring{background:conic-gradient(from 200deg,#FFE082,#FF7A29,#D7263D,#FFE082);box-shadow:0 0 14px rgba(255,90,40,.6),inset 0 0 0 2px #FFF3D6;}
.pf-rainbow .pf-ring{background:conic-gradient(from 0deg,#FF5E62,#FFB03A,#FFD23E,#37C978,#3E9BFF,#8A5CFF,#FF5E62);box-shadow:0 0 14px rgba(180,120,255,.5),inset 0 0 0 2px #FFFFFF;}
.pf-orbit{position:absolute;inset:-7px;border-radius:50%;border:2px dashed rgba(14,94,70,.45);animation:spinSlow 9s linear infinite;pointer-events:none;z-index:2;}
/* fix 24: media frame art above the face (z 2 over .pf-av z 1) — the
   art is transparent in the centre, so the face shows through the
   middle while its band/leaves/sparkles overlay the photo's rim. */
.pf-media .pf-media-ring{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%;z-index:2;}
/* the .pf-media face is sized by percentage in the fix 19 block below
   (the old fixed inset:7px only lined up at the 60px stage) */
/* Neutral ring: a chosen item's media art stands alone — the fallback
   face behind it never paints the default gold ring. */
.pf-ring.pf-clear{background:transparent;box-shadow:none;animation:none;}
@keyframes spinSlow{to{transform:rotate(360deg);}}

/* --- chat bubbles + previews (Set 6A .bub family) --- */
.bub{position:relative;display:inline-block;max-width:78%;padding:7px 12px;font-size:12.5px;font-weight:600;color:#FFF;line-height:1.35;}
.bub-kesar{background:linear-gradient(135deg,#FFB03A,#FF7A29);border-radius:15px 15px 15px 4px;box-shadow:0 3px 8px rgba(255,122,41,.35);}
.bub-chilli{background:linear-gradient(135deg,#FF5E62,#D7263D);border-radius:15px 15px 4px 15px;box-shadow:0 3px 8px rgba(215,38,61,.32);}
.bub-saffron{background:linear-gradient(135deg,#FFD23E,#FF9933);border-radius:15px 15px 15px 4px;box-shadow:0 3px 8px rgba(255,153,51,.35);}
.bsp{position:absolute;color:#FFD23E;pointer-events:none;}
.bsp svg{width:11px;height:11px;}
.bsp.b1{top:-7px;right:8px;animation:sparkPulse 1.6s ease-in-out infinite;}
.bsp.b2{bottom:-6px;left:14px;animation:sparkPulse 1.6s ease-in-out .8s infinite;}
.chatprev{background:linear-gradient(180deg,#FDF3E3,#FBEED3);border:1px solid var(--line);border-radius:14px;padding:12px;}
.msgrow{display:flex;align-items:flex-end;gap:7px;margin:7px 0;}
.pv-av{width:26px;height:26px;border-radius:50%;background:var(--green);color:#FFF;font-weight:800;font-size:12px;display:flex;align-items:center;justify-content:center;flex:none;overflow:hidden;}
.pv-av img{width:100%;height:100%;object-fit:cover;}

/* --- room scenes (Set 6A previews) --- */
.scene{display:block;width:100%;height:100%;}
.scene-royal-kitchen{background:linear-gradient(160deg,#3A2A52,#7A2E4D 55%,#B3541E);}
.scene-dum-nights{background:linear-gradient(160deg,#101736,#31235C 60%,#5B2A86);}
.scene-mint-room-bg{background:linear-gradient(160deg,#0E5E46,#37C978 60%,#B7F0C8);}
.scene-dum-court{background:linear-gradient(160deg,#5C1A1B,#9C6644 60%,#F6B73C);}
.scene-saffron-swirl{background:linear-gradient(135deg,#FFD23E,#FF7A29 55%,#D7263D);}
.scene-aurora-sky{background:radial-gradient(ellipse 90% 55% at 70% 0%,rgba(123,224,184,.75),transparent 60%),radial-gradient(ellipse 70% 50% at 25% 10%,rgba(138,92,255,.55),transparent 60%),linear-gradient(165deg,#0B1035,#173F5F 48%,#1E7A6E 78%,#2E8B6A);}
.scene-confetti-festival{background:radial-gradient(circle at 18% 28%,#FF5E62 0 4px,transparent 5.5px),radial-gradient(circle at 74% 20%,#FFD23E 0 4px,transparent 5.5px),radial-gradient(circle at 44% 58%,#3E9BFF 0 4px,transparent 5.5px),radial-gradient(circle at 85% 66%,#37C978 0 4px,transparent 5.5px),radial-gradient(circle at 26% 84%,#8A5CFF 0 4px,transparent 5.5px),radial-gradient(circle at 60% 88%,#FF8FA3 0 4px,transparent 5.5px),radial-gradient(circle at 90% 40%,#FF7A29 0 3px,transparent 4.5px),radial-gradient(circle at 8% 62%,#3E9BFF 0 3px,transparent 4.5px),linear-gradient(160deg,#FFF3D6,#FFE0EC);}
.scene-rainbow-shimmer{background:linear-gradient(120deg,#FF5E62,#FFB03A,#FFD23E,#37C978,#3E9BFF,#8A5CFF);}
.roomprev{position:relative;border-radius:16px;padding:12px 12px 14px;color:#FFF;overflow:hidden;}
.roomprev .scene{position:absolute;inset:0;}
.lampdots{position:relative;display:flex;gap:16px;justify-content:center;margin-bottom:8px;}
.lampdots i{width:7px;height:7px;border-radius:50%;background:#FFD23E;box-shadow:0 0 8px #FFD23E;animation:sparkPulse 2s ease-in-out infinite;}
.lampdots i:nth-child(2n){animation-delay:.5s;}
.lampdots i:nth-child(3n){animation-delay:1s;}
.roombar{position:relative;display:flex;align-items:center;gap:7px;margin-bottom:10px;}
.room-name{font-weight:800;font-size:13.5px;}
.live-chip{background:#D7263D;color:#FFF;font-size:9px;font-weight:800;letter-spacing:.8px;padding:3px 7px;border-radius:6px;}
.room-chip{margin-left:auto;background:rgba(255,255,255,.18);font-size:10px;font-weight:700;padding:3px 8px;border-radius:999px;}
.hostrow{position:relative;display:flex;justify-content:center;margin-bottom:10px;}
.seatgrid{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:10px 4px;}
.seat{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;}
.seat .s-av{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;color:#FFF;background:linear-gradient(135deg,#B3541E,#7A2E4D);box-shadow:inset 0 0 0 2px rgba(255,255,255,.35);overflow:hidden;}
.seat .s-av img{width:100%;height:100%;object-fit:cover;}
.seat.speaking .s-av{box-shadow:0 0 0 3px #FFD23E,0 0 14px rgba(255,210,62,.8);}
.avc1{background:linear-gradient(135deg,#0E5E46,#37C978) !important;}
.avc2{background:linear-gradient(135deg,#31235C,#8A5CFF) !important;}
.avc3{background:linear-gradient(135deg,#9C3D0C,#FF7A29) !important;}
.avhost{background:linear-gradient(135deg,#F6B73C,#B3541E) !important;}
.s-nm{font-size:10px;font-weight:600;opacity:.92;}
.mic{position:absolute;top:32px;right:calc(50% - 26px);width:15px;height:15px;border-radius:50%;background:#0E5E46;color:#FFF;display:flex;align-items:center;justify-content:center;}
.mic svg{width:9px;height:9px;}
.mic.mut{background:#D7263D;}
.host-tag{background:#F6B73C;color:#5C3A08;font-size:8.5px;font-weight:800;letter-spacing:.6px;padding:2px 7px;border-radius:5px;}
.entry-ribbon{position:relative;margin-top:12px;display:flex;align-items:center;justify-content:center;gap:8px;background:rgba(0,0,0,.38);border:1px solid rgba(255,210,62,.6);border-radius:999px;padding:7px 12px;font-size:11.5px;font-weight:700;}
.entry-ribbon svg{width:18px;height:18px;color:#FFD23E;}
.mount-big{position:relative;margin-top:12px;display:flex;justify-content:center;color:#FFD23E;}
.mount-big svg{width:64px;height:64px;filter:drop-shadow(0 4px 10px rgba(0,0,0,.4));}
.room-hint{display:flex;align-items:center;gap:6px;color:var(--ink-soft);font-size:11.5px;font-weight:600;padding:8px 2px 0;}
.room-hint svg{width:14px;height:14px;flex:none;}

/* --- generic item art tiles --- */
.art-media{width:100%;height:100%;object-fit:cover;display:block;border-radius:inherit;}
.art-lottie{position:relative;display:block;width:100%;height:100%;}
.art-lottie>svg{position:absolute;inset:0;width:100%;height:100%;}
.art-tile{width:52px;height:52px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#FFE082,#F6B73C 60%,#B97F08);color:#5C3A08;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 10px rgba(185,127,8,.35);}
.art-tile svg{width:30px;height:30px;}
.art-tile.big{width:76px;height:76px;}
.art-tile.big svg{width:44px;height:44px;}
.art-badge{width:56px;height:56px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#FFF3B0,#FFD23E 55%,#B97F08);color:#7A4d00;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 3px #FFF6D9,0 6px 14px rgba(185,127,8,.4);}
.art-badge svg{width:30px;height:30px;}
.art-badge.big{width:84px;height:84px;}
.art-badge.big svg{width:46px;height:46px;}
.art-theme{width:72px;height:72px;border-radius:18px;box-shadow:0 6px 14px rgba(0,0,0,.18);}
.art-theme.big{width:104px;height:104px;}

/* --- Store screen (Set 6A) --- */
.st-coin{margin-left:auto;}
.bp-btn{display:flex;align-items:center;gap:6px;background:var(--green);color:#FFF;border:none;border-radius:999px;padding:8px 13px;font:inherit;font-size:12.5px;font-weight:700;cursor:pointer;}
.bp-btn svg{width:16px;height:16px;}
.cats{display:flex;gap:7px;overflow-x:auto;padding:10px 16px 8px;scrollbar-width:none;position:sticky;top:62px;z-index:5;background:var(--cream);}
.cats::-webkit-scrollbar{display:none;}
.cats .chip{flex:none;}
.shop-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;padding:12px 14px 6px;}
.shop-card{background:#FFF;border:1px solid var(--line);border-radius:16px;padding:10px 6px 9px;display:flex;flex-direction:column;align-items:center;gap:5px;font:inherit;cursor:pointer;text-align:center;box-shadow:0 12px 26px rgba(14,94,70,.08),0 2px 5px rgba(14,94,70,.05);}
.shop-card:active{transform:scale(.98);}
.sc-art{width:100%;height:104px;border-radius:12px;background:transparent;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;}
.sc-art.sc-frame{background:none;}
.sc-art .pf{width:56px;height:56px;}
.sc-art .pf-av{font-size:19px;}
.sc-art .pf-charm{width:19px;top:-8px;}
.sc-art .pf-charm svg{width:19px;height:14px;}
.sc-art.sc-scene{padding:0;}
.sc-art .art-media{border-radius:12px;}
.sc-name{font-size:11.8px;font-weight:700;color:var(--ink);line-height:1.25;min-height:29px;display:flex;align-items:center;}
.sc-price{display:flex;align-items:center;gap:3px;font-size:12px;font-weight:800;color:var(--green-d);}
.sc-price .btc{width:15px;height:15px;font-size:6.5px;}
.sc-per{color:var(--ink-soft);font-weight:600;font-size:10.5px;}

/* --- detail sheets (Set 6A/6B) --- */
.sheet-top{display:flex;align-items:center;gap:8px;margin-bottom:12px;}
.sheet-name{font-size:17px;font-weight:800;color:var(--ink);display:flex;align-items:center;gap:7px;flex:1;}
.sheet-x{margin-left:auto;background:#F3EBDD;border:none;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink);}
.sheet-x svg{width:16px;height:16px;}
.pv-box{background:linear-gradient(160deg,#FFF6E8,#FDEBD2);border:1px solid var(--line);border-radius:16px;min-height:150px;display:flex;align-items:center;justify-content:center;padding:18px;position:relative;overflow:hidden;}
.pv-media{max-width:100%;max-height:220px;border-radius:12px;}
.pv-frame .pv-profile{display:flex;flex-direction:column;align-items:center;gap:5px;}
.pv-pname{font-weight:800;font-size:15px;color:var(--ink);margin-top:6px;text-align:center;}
.pv-psub{font-size:11.5px;color:var(--ink-soft);text-align:center;}
.pv-profbg .pv-cover{position:absolute;inset:0;}
.pv-profcard{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;color:#FFF;}
.pv-profcard .pv-pname{color:#FFF;}
.pv-profcard .pv-psub{color:rgba(255,255,255,.85);}
.durrow{display:flex;gap:8px;margin:14px 0 4px;}
.dur{flex:1;background:#FFF;border:1.6px solid var(--line);border-radius:13px;padding:9px 4px;font:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;}
.dur .d-d{font-size:12.5px;font-weight:700;color:var(--ink);}
.dur .d-p{font-size:12px;font-weight:800;color:var(--green-d);display:flex;align-items:center;gap:3px;}
.dur .d-p .btc{width:14px;height:14px;font-size:6px;}
.dur.on{border-color:var(--green);background:#EAF7F0;box-shadow:0 0 0 2px rgba(20,122,90,.15);}
.buybtn{display:flex;align-items:center;justify-content:center;gap:7px;}
.buybtn .amt{font-size:16px;}
.valid-panel{background:#FFF;border:1px solid var(--line);border-radius:13px;padding:11px 13px;margin:13px 0 4px;}
.vp-row{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:700;color:var(--ink);}
.vp-src{font-size:11.5px;color:var(--ink-soft);margin-top:5px;}
.lock-note{display:flex;gap:7px;align-items:center;background:#FFF3D6;border:1px solid #F0D49A;border-radius:11px;padding:9px 11px;font-size:12px;font-weight:600;color:#7A4d00;margin-top:11px;}
.btn-off{background:#CFC6B4;box-shadow:none;}
.btn.green{background:linear-gradient(180deg,#1B9E6B,#0E7A52);box-shadow:0 4px 0 #0B5C3E,0 8px 16px rgba(14,94,70,.28);}

/* --- rarity pills (Set 6B) --- */
.rar{font-size:9.5px;font-weight:800;letter-spacing:.5px;padding:3px 8px;border-radius:999px;color:#FFF;text-transform:uppercase;}
.rar-rare{background:linear-gradient(90deg,#3E9BFF,#8A5CFF);}
.rar-epic{background:linear-gradient(90deg,#B04DFF,#FF5EB1);}
.rar-leg{background:linear-gradient(90deg,#F6B73C,#FF7A29);color:#4A2E00;}

/* --- Backpack screen (Set 6B) --- */
.bp-store-link{align-self:flex-end;margin:10px 16px 0;display:flex;align-items:center;gap:5px;background:#FFF;border:1px solid var(--line);border-radius:999px;padding:6px 11px;font:inherit;font-size:11.5px;font-weight:700;color:var(--green-d);cursor:pointer;}
.bp-store-link svg{width:14px;height:14px;}
.gifts-strip{margin:12px 14px 2px;background:linear-gradient(120deg,#123B2E,#0E5E46);border-radius:15px;padding:12px 14px;display:flex;align-items:center;gap:11px;color:#FFF;}
.gs-ic{width:38px;height:38px;border-radius:11px;background:rgba(255,210,62,.18);color:#FFD23E;display:flex;align-items:center;justify-content:center;flex:none;}
.gs-ic svg{width:21px;height:21px;}
.gs-tx{flex:1;font-size:13px;line-height:1.35;}
.gs-tx b{color:#FFD23E;}
.gs-sub{display:block;font-size:11px;color:rgba(255,255,255,.75);font-weight:600;}
.gs-btn{background:#FFD23E;color:#4A2E00;border:none;border-radius:999px;padding:8px 13px;font:inherit;font-size:12px;font-weight:800;cursor:pointer;flex:none;}
.own-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;padding:12px 14px 6px;}
.own-card{background:#FFF;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 12px 26px rgba(14,94,70,.08),0 2px 5px rgba(14,94,70,.05);cursor:pointer;}
.own-card.expired{opacity:.72;}
.own-art{position:relative;height:118px;background:transparent;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.own-art .pf{width:60px;height:60px;}
.own-art .pf-av{font-size:20px;}
.own-art .pf-charm{width:20px;top:-8px;}
.own-art .pf-charm svg{width:20px;height:15px;}
.own-art.sc-none{background:none;}

/* --- fix 19 · frame geometry: one .pf composition at every size ---
   The Lottie set is authored on a square canvas whose frame band
   orbits at ~80% of the stage (inner edge ~76%), so a MEDIA frame's
   face is 77% of the stage, sized by percentage so it scales at any
   stage size. CSS-art frames keep their drawn proportions (face ~83%
   of the stage, as at 60px/68px). Stages: tile ~124px square, sheet
   preview 'xl' 190px; the drawer keeps .pf-lg. */
.pf.pf-xl{width:190px;height:190px;}
.pf.pf-xl .pf-av{width:83%;height:83%;font-size:54px;}
.pf.pf-tile{width:min(124px,94%);height:auto;aspect-ratio:1/1;}
.pf.pf-tile .pf-av{width:83%;height:83%;font-size:34px;}
/* tile art boxes grow so the square stage is never cropped */
.sc-art.sc-frame{height:132px;}
.own-art:has(> .sc-frame){height:140px;}
.own-art .sc-art.sc-frame{height:100%;}
/* media frame face — percentage of the stage, dead centre; declared
   last so it wins over the size-class faces at every stage size. */
.pf.pf-media .pf-av{position:absolute;inset:0;margin:auto;width:77%;height:77%;}

/* --- fix 20 · HelloTalk-clean tiles: art alone, no halo ---
   Grid tiles (Store + Backpack) show the item's art ALONE on a square
   stage centred on the plain card — no user photo composited in, no
   gold glow/shadow halo around frames. Sheet previews, the drawer and
   the profile keep the fix 19 photo-in-frame composition. */
.tile-media{position:relative;display:block;width:min(112px,100%);aspect-ratio:1/1;margin:0 auto;}
img.tile-media,video.tile-media{object-fit:contain;}
.tile-artonly .pf-av{background:transparent;box-shadow:none;}
.sc-art .pf-ring{box-shadow:none;}

/* --- fix 22 · media-alone square tiles + one sticky header unit ---
   Tiles with media are the animation ALONE in a strictly square
   stage: no pf composition, CSS ring or face under the media, so a
   frame can never draw as two stacked rings or stretch into an
   ellipse. While a Lottie streams in, the stage is a plain
   soft-cream box with one small static sparkle (.tile-load).
   The sticky fix is structural: #sh-main is a flex column, so its
   children are flex items and position:sticky on them is confined
   to their own box — the old split stickies (.lvl-head top:0 +
   .cats top:62px) could never travel, which scrolled the title away
   and pinned the chips half-clipped. Each shop screen now wraps its
   content in one block box (.shop-screen, full content height) and
   pins title + chips as ONE sticky unit (.shop-sticky) inside it. */
.shop-screen{display:block;width:100%;flex:none;}
.shop-sticky{position:sticky;top:0;z-index:7;background:var(--cream);}
.shop-sticky .lvl-head{position:static;}
.shop-sticky .cats{position:static;top:auto;}
.shop-sticky .gtabs-slice{margin-top:10px;padding:0 2px;}
.shop-sticky .gtabs{margin-bottom:0;}
.gp-dark.joined{margin-top:8px;padding-top:12px;}
.sc-art.sc-mediaonly{aspect-ratio:1/1;height:auto;background:#FFF8EE;}
.own-art .sc-art.sc-mediaonly{width:auto;height:100%;}
.sc-mediaonly .tile-media{width:100%;height:100%;margin:0;}
img.tile-media,video.tile-media{object-fit:contain;width:100%;height:100%;}
.tile-load{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:.55;pointer-events:none;}
.tile-load svg{width:22px;height:22px;}
/* fix 23: once lottie-web has inserted its <svg> as a direct child of
   .art-lottie, the loading sparkle must go — frame animations have a
   transparent centre, so the placeholder otherwise shows through
   forever as a stray star. The spark's own svg sits inside .tile-load,
   not directly under .art-lottie, so :has(> svg) cannot self-trigger. */
.art-lottie:has(> svg) .tile-load{display:none;}
/* fix 26: the fix 23 rule, generalised — a loaded animation must be
   HIGHLIGHTED: once lottie-web's <svg> is a direct child of the
   .art-lottie span, EVERY fallback child inside that span is hidden
   (gift glyph in .gart-media tiles/owned/sent rows, the CSS preview
   scene in .pv-media sheets, the .pf-clear ring in .pf-media-ring
   spans, the burst loader). Fallbacks are always direct children and
   never bare <svg> elements (their glyphs nest one level deeper), so
   :not(svg) cannot touch the animation itself; and on data_failed no
   <svg> lands, so :has() stays false and the failure fallback shows
   exactly as before. The .pf face is a SIBLING of the media span,
   never a child of it, so compositions are unaffected. */
.art-lottie:has(> svg) > :not(svg){display:none;}
/* fix 26: neutral burst-hero loading state — one soft pulsing
   sparkle inside the (otherwise empty) glowing hero circle while a
   media gift's animation streams in; hidden on load by the rule
   above, and the no-media CSS-art burst never uses it. */
.burst-load{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#FFD23E;animation:sparkPulse 1.2s ease-in-out infinite;pointer-events:none;}
.burst-load svg{width:30px;height:30px;}
.art-tile[data-art="big-heart-pop"]{background:radial-gradient(circle at 35% 30%,#FFD3E0,#FF8FA3 60%,#E75480);color:#8F1030;box-shadow:0 4px 10px rgba(231,84,128,.35);}
.gart[data-art="kulfi-cloud"]{color:#FFB3C7;}

.own-rar{position:absolute;top:7px;left:7px;}
.own-body{padding:9px 11px 11px;}
.own-name{font-size:13px;font-weight:800;color:var(--ink);}
.own-src{font-size:11px;color:var(--ink-soft);font-weight:600;margin-top:1px;}
.own-val{margin-top:8px;display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.val-bar{flex:1;min-width:56px;height:6px;border-radius:99px;background:#EFE6D6;overflow:hidden;}
.val-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,#37C978,#0E5E46);}
.val-fill.soon{background:linear-gradient(90deg,#FFB03A,#FF7A29);}
.val-tx{font-size:11px;font-weight:700;color:var(--green-d);}
.val-tx.soon{color:#C25E10;}
.soon-pill{background:#FFF1D6;color:#B45F06;font-size:9.5px;font-weight:800;padding:2px 7px;border-radius:999px;}
.soon-pill.sm{font-size:8.5px;padding:1px 6px;}
.exp-chip{background:#F3E3DC;color:#A33B2E;font-size:10.5px;font-weight:800;padding:3px 8px;border-radius:999px;}
.eq-btn{margin-top:9px;width:100%;border:none;border-radius:10px;padding:8px;font:inherit;font-size:12.5px;font-weight:800;cursor:pointer;background:var(--green);color:#FFF;display:flex;align-items:center;justify-content:center;gap:4px;}
.eq-btn .btc{width:14px;height:14px;font-size:6px;}
.eq-btn.on{background:#E4F5EC;color:var(--green-d);cursor:default;}
.eq-row{display:flex;gap:6px;margin-top:9px;}
.eq-row .eq-btn{margin-top:0;flex:1;}
.eq-btn.rm{background:#F1EAD9;color:var(--ink-soft);}
.btn.bsh-remove{width:100%;margin-top:8px;}
.eq-btn.off{background:#F1EAD9;color:var(--ink-soft);cursor:default;}
.eq-btn.renew{background:linear-gradient(135deg,#FFB03A,#FF7A29);color:#FFF;}
.bp-foot{padding:10px 18px 0;font-size:11.5px;color:var(--ink-soft);font-weight:600;text-align:center;}

/* --- Gift Store panel (Set 7, dark) --- */
/* Fix 56 · the gift stage is LIGHT and clean (owner reference):
   white cards, big clear gift art, name + coins under each. */
.gp-dark{background:linear-gradient(180deg,#FFF6E9,#FFFBF2);border:1px solid #F3E9D2;border-radius:20px;margin-top:12px;padding:14px 12px 6px;min-height:52vh;color:var(--ink);box-shadow:0 6px 18px rgba(14,94,70,.05);}
/* fix 45: the gift store's stage must fill the screen — with few
   gifts it stopped mid-screen and the cream page showed below. */
.shop-screen.gshop{display:flex;flex-direction:column;min-height:100%;}
.gshop .gp-dark{flex:1 0 auto;}
.gtabs{display:flex;gap:6px;background:#F1E7D3;border-radius:12px;padding:4px;margin-bottom:12px;}
.gtab{flex:1;text-align:center;padding:8px 2px;border-radius:9px;font-size:13px;font-weight:700;color:var(--ink-soft);cursor:pointer;}
.gtab.active{background:linear-gradient(135deg,#0E5E46,#128A66);color:#fff;font-weight:800;box-shadow:0 4px 10px rgba(14,94,70,.25);}
.ggrid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;}
.gcard{position:relative;background:#fff;border:1.6px solid #F3E9D2;border-radius:16px;padding:10px 4px 9px;display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer;text-align:center;box-shadow:0 3px 10px rgba(120,84,10,.06);}
.gcard.sel{border-color:#0E5E46;background:#F2FBF6;box-shadow:0 0 0 2px rgba(14,94,70,.20),0 6px 14px rgba(14,94,70,.12);}
.gcard .gart{width:64px;height:64px;border-radius:18px;background:radial-gradient(circle at 35% 30%,#FFF6DE,#FFECC0 68%);color:#B97F08;}
.gcard .gart svg{width:36px;height:36px;}
.gcard .gart-media{border-radius:18px;}
.gcard.locked{cursor:default;}
.gart{position:relative;width:52px;height:52px;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;color:#FFE9A8;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.28),rgba(255,255,255,.05) 60%);}
.gart svg{width:29px;height:29px;}
.gart.big{width:110px;height:110px;}
.gart.big svg{width:60px;height:60px;}
.gart[data-art="golden-egg"],.gart[data-art="goodie-bag"]{color:#FFD23E;}
.gart[data-art="red-rose"],.gart[data-art="choco-heart"],.gart[data-art="sweet-heart"]{color:#FF8FA3;}
.gart[data-art="dum-handi"],.gart[data-art="golden-handi-ark"],.gart[data-art="badshah-throne"]{color:#F6B73C;}
.gart[data-art="masala-chai"],.gart[data-art="green-tea"]{color:#B7F0C8;}
.gart-media{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;border-radius:50%;display:block;}
.g-nm{font-size:10.6px;font-weight:700;line-height:1.2;min-height:25px;display:flex;align-items:center;}
.g-pr{display:flex;align-items:center;gap:3px;font-size:11px;font-weight:800;color:#C9860A;}
.g-pr .btc{width:13px;height:13px;font-size:5.5px;}
.g-src{font-size:9px;color:var(--ink-mute);font-weight:600;line-height:1.2;}
.lucky-pill{position:absolute;top:5px;left:5px;background:#FFD23E;color:#4A2E00;font-size:8px;font-weight:800;padding:2px 6px;border-radius:999px;letter-spacing:.3px;z-index:2;}
.fx-pill{position:absolute;top:5px;left:50%;transform:translateX(-50%);background:linear-gradient(90deg,#7B2FF7,#F107A3);color:#fff;font-size:7.5px;font-weight:800;padding:2px 5px;border-radius:999px;letter-spacing:.3px;white-space:nowrap;z-index:2;}
.g-rar{position:absolute;top:5px;right:5px;z-index:2;}
.g-rar .rar{font-size:8px;padding:2px 6px;}
.cnt-badge{position:absolute;top:5px;left:5px;background:#FFD23E;color:#4A2E00;font-weight:800;font-size:10.5px;padding:2px 7px;border-radius:999px;z-index:2;}
.exp-badge{position:absolute;top:5px;right:5px;background:rgba(0,0,0,.45);color:#FFE9A8;font-size:9px;font-weight:700;padding:2px 6px;border-radius:999px;z-index:2;}
.veil{position:absolute;inset:0;border-radius:16px;background:rgba(24,32,28,.38);display:flex;align-items:center;justify-content:center;color:#FFF;z-index:1;}
.veil svg{width:22px;height:22px;opacity:.9;}
.locktag{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);font-size:8.6px;font-weight:800;color:#FFF;padding:2.5px 7px;border-radius:999px;white-space:nowrap;z-index:2;}
.locktag.l2{background:#7A5CFF;}.locktag.l3{background:#3E9BFF;}.locktag.l4{background:#0E9E6B;}
.locktag.l5{background:#FF7A29;}.locktag.l6{background:#D7263D;}.locktag.l7{background:linear-gradient(90deg,#F6B73C,#FF7A29);color:#4A2E00;}
.lvl-chip{position:absolute;top:5px;right:5px;background:rgba(255,210,62,.9);color:#4A2E00;font-size:8.6px;font-weight:800;padding:2px 6px;border-radius:999px;z-index:2;}
.gp-note{font-size:11.5px;color:var(--ink-soft);font-weight:600;padding:0 2px 10px;line-height:1.45;}
.gp-foot{display:flex;align-items:center;gap:9px;padding:13px 2px 2px;}
.gp-next{font-size:12px;font-weight:700;color:var(--ink-soft);}
.gsendbar{display:flex;gap:8px;padding:8px;background:#fff;border:1px solid #F1E7D3;border-radius:16px;box-shadow:0 10px 22px rgba(14,94,70,.13);position:sticky;bottom:8px;z-index:6;margin-top:13px;}
/* Fix 247: Send lives inside the selected gift card (owner) — the
   button exists on every card but stays hidden until selection. */
.gcard .gc-send,.gcard .gc-open{display:none;margin-top:8px;width:100%;border:0;border-radius:999px;padding:8px 10px;font-size:13px;font-weight:800;cursor:pointer;}
.gcard .gc-send{background:linear-gradient(135deg,#F6B73C,#F08C1A);color:#fff;box-shadow:0 4px 10px rgba(240,140,26,.35);}
.gcard .gc-open{background:#fff;color:#0E5E46;border:1.6px solid #0E5E46 !important;margin-top:6px;box-shadow:none;}
.gcard.sel .gc-send,.gcard.sel .gc-open{display:block;}
.feat-card .gc-send{display:none;margin-top:10px;border:0;border-radius:999px;padding:9px 20px;font-size:13.5px;font-weight:800;cursor:pointer;background:linear-gradient(135deg,#F6B73C,#F08C1A);color:#fff;box-shadow:0 4px 10px rgba(240,140,26,.35);}
.feat-card.sel .gc-send{display:inline-block;}
.gsend{flex:1;}
.gsend.gold{background:linear-gradient(180deg,#FFD23E,#E8A33D);color:#4A2E00;box-shadow:0 4px 0 #B97F08,0 8px 16px rgba(185,127,8,.25);flex:0 0 104px;}
.sent-list{display:flex;flex-direction:column;gap:8px;}
.sent-row{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #F3E9D2;border-radius:13px;padding:8px 11px;}
.sent-row .gart{background:#FFF6E3;}
.sent-row .gart{width:40px;height:40px;flex:none;}
.sent-row .gart svg{width:23px;height:23px;}
.sr-main{flex:1;min-width:0;}
.sr-nm{font-size:13px;font-weight:800;}
.sr-sub{font-size:11px;color:var(--ink-mute);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sr-side{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:12px;font-weight:800;color:#C9860A;}
.sr-side .btc{width:13px;height:13px;font-size:5.5px;}
.sr-pts{font-size:10.5px;color:#0E9E6B;}
.lvl-loading.light{color:var(--ink-mute);}
/* Static empty state — same calm metrics as .lvl-loading but NO
   spinner (screen review 2026-10-27: a filtered-empty list showed
   the loading ring forever). */
.list-empty{padding:44px 20px;text-align:center;font-size:13.5px;font-weight:600;color:var(--ink-mute);}

/* Fix 56 · featured full-screen premium gift banner */
.feat-card{position:relative;display:flex;gap:14px;align-items:center;border-radius:24px;padding:16px;margin-bottom:12px;color:#fff;background:linear-gradient(120deg,#3B0764,#7C3AED 55%,#DB2777);overflow:hidden;box-shadow:0 12px 26px rgba(124,58,237,.32);cursor:pointer;}
.feat-card.sel{box-shadow:0 0 0 3px #FFD23E,0 12px 26px rgba(124,58,237,.32);}
.feat-tag{position:absolute;top:10px;right:10px;background:rgba(0,0,0,.35);font-size:9px;font-weight:800;letter-spacing:.06em;padding:3px 8px;border-radius:999px;}
.feat-art{flex:none;}
.feat-art .gart{background:rgba(255,255,255,.12);color:#FFE9A8;}
.feat-tx{flex:1;min-width:0;}
.feat-nm{font-weight:900;font-size:17px;}
.feat-sub{font-size:12.5px;opacity:.88;margin-top:2px;}
.feat-pr{display:flex;align-items:center;gap:5px;margin-top:8px;font-weight:800;font-size:13.5px;}
.feat-lvl{background:rgba(255,255,255,.18);font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px;margin-left:4px;}

/* --- people picker --- */
.ppl-list{margin-top:10px;display:flex;flex-direction:column;gap:6px;max-height:46vh;overflow-y:auto;}
.ppl-row{display:flex;align-items:center;gap:10px;background:#FFF;border:1px solid var(--line);border-radius:13px;padding:9px 12px;font:inherit;cursor:pointer;text-align:left;width:100%;}
.ppl-row .lb-av img{width:100%;height:100%;object-fit:cover;border-radius:50%;}
.ppl-name{flex:1;font-weight:700;font-size:14px;color:var(--ink);}
.ppl-empty{color:var(--ink-soft);font-size:12.5px;font-weight:600;text-align:center;padding:14px 6px;}

/* --- send-moment burst overlay (Set 7) --- */
.burst-overlay{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;background:rgba(9,26,19,.88);padding:22px;}
.burst-veil{position:relative;text-align:center;color:#FFF;max-width:320px;width:100%;}
.rays{position:absolute;left:50%;top:86px;width:300px;height:300px;transform:translate(-50%,-50%);border-radius:50%;background:repeating-conic-gradient(from 0deg,rgba(255,210,62,.16) 0 10deg,transparent 10deg 24deg);animation:spinSlow 14s linear infinite;pointer-events:none;}
.burst-art{position:relative;display:flex;justify-content:center;margin-bottom:14px;}
.burst-media{width:110px;height:110px;object-fit:contain;border-radius:50%;box-shadow:0 0 34px rgba(255,210,62,.55);}
.burst-cap{position:relative;font-size:14.5px;color:rgba(255,255,255,.85);}
.burst-cap b{color:#FFF;}
.burst-name{position:relative;font-size:23px;font-weight:800;margin-top:3px;}
.burst-pts{position:relative;display:inline-flex;align-items:center;gap:7px;margin-top:13px;background:rgba(255,210,62,.14);border:1px solid rgba(255,210,62,.5);color:#FFE9A8;border-radius:999px;padding:7px 14px;font-size:13px;font-weight:800;}
.burst-pts svg{width:15px;height:15px;}
.burst-collect{position:relative;margin-top:20px;}
.burst-more{position:relative;margin-top:11px;font-size:12px;color:rgba(255,255,255,.7);font-weight:600;}

@media (prefers-reduced-motion: reduce){
  .pf-orbit,.rays,.lampdots i,.bsp{animation:none !important;}
}

/* ================================================================
   Fix 31 · Dum Every Day (Set 5 v4) — My Level earn table, Today's
   Missions, Mystery Box reveal + level-up celebration overlays. */
.dum-pill{flex:none;background:#FFF3D6;border:1.5px solid #F0DCAE;color:#8A5A03;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:800;white-space:nowrap;}
.done-pill{flex:none;background:#E4F3E4;color:#1E7A34;border:1.5px solid #BFE3BF;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:800;white-space:nowrap;}
.btn-gold{background:linear-gradient(180deg,#FFD23E,#F0A92E);color:#4A2E00;box-shadow:0 4px 0 #B97F08,0 8px 16px rgba(185,127,8,.25);}
.dum-mis-btn{margin:2px 16px 12px;width:calc(100% - 32px);}
.dum-earn{padding:12px 14px 6px;margin:0 16px 12px;}
.dum-erow{display:flex;align-items:center;gap:11px;padding:8px 0;}
.dum-erow + .dum-erow{border-top:1px solid #F4EBDD;}
.dum-eic{width:38px;height:38px;flex:none;border-radius:12px;background:#FFF6E3;display:flex;align-items:center;justify-content:center;font-size:19px;}
.dum-etx{flex:1;min-width:0;}
.dum-etx .t{font-size:14px;font-weight:700;}
.dum-etx .s{font-size:12px;color:var(--ink-soft);font-weight:600;}
.mis-top{display:flex;align-items:center;gap:9px;margin:4px 2px 12px;flex-wrap:wrap;}
.mis-date{font-size:12.5px;font-weight:700;color:var(--ink-soft);}
.streak-chip{margin-left:auto;background:#FFF3D6;border:1.5px solid #F0DCAE;color:#8A5A03;border-radius:999px;padding:4px 11px;font-size:12px;font-weight:800;white-space:nowrap;}
.mis-card{padding:6px 14px;margin-bottom:12px;}
.mis-sub{font-size:12px;color:var(--ink-soft);font-weight:600;margin-top:1px;}
.mis-emoji{font-size:19px;line-height:1;}
.bonus-card{display:flex;align-items:center;gap:11px;background:#FFF6E3;border:1.5px solid #F0DCAE;border-radius:18px;padding:12px 14px;margin-bottom:12px;}
.bonus-ic{font-size:22px;flex:none;}
.bonus-tx{flex:1;min-width:0;}
.bonus-tx .t{font-size:14px;font-weight:800;}
.bonus-tx .s{font-size:12px;color:var(--ink-soft);font-weight:600;}
.mis-box{padding:14px;margin-bottom:12px;}
.mis-box-top{display:flex;gap:11px;align-items:flex-start;margin-bottom:11px;}
.mis-box-ic{font-size:30px;line-height:1;flex:none;}
.mis-box-t{font-size:14.5px;font-weight:800;}
.mis-box-s{font-size:12px;color:var(--ink-soft);font-weight:600;margin-top:2px;}
.mis-note{font-size:12.5px;color:var(--ink-soft);font-weight:600;line-height:1.5;padding:13px 14px;}
.dum-overlay{position:fixed;inset:0;z-index:120;background:rgba(24,16,4,.55);display:flex;align-items:center;justify-content:center;padding:20px;}
.dum-card{background:#FFFDF7;border-radius:24px;padding:24px 20px 20px;max-width:340px;width:100%;text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.35);}
.dum-card h3{font-size:19px;font-weight:900;margin:6px 0 8px;}
.dum-card p{font-size:13.5px;color:var(--ink-soft);font-weight:600;line-height:1.5;margin:0 0 12px;}
.dum-big{font-size:44px;line-height:1.1;}
.dum-gift-art{display:flex;justify-content:center;margin:4px 0 8px;}
.dum-pills{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:8px;}
.dum-card .btn{margin-top:8px;}
.dum-lvl{display:flex;justify-content:center;margin:6px 0 10px;}

/* ================================================================
   Fix 32 · Partners, Perks, Who Waved, Profiles (SPEC §6.9/§7). */
.pt-head{display:flex;align-items:center;margin:2px 2px 10px;}
.pt-title{font-size:19px;font-weight:900;flex:1;}
.pt-perks{background:linear-gradient(180deg,#FFD23E,#F0A92E);color:#4A2E00;border:none;border-radius:999px;padding:7px 14px;font-size:13px;font-weight:900;box-shadow:0 3px 0 #B97F08;cursor:pointer;}
.pt-banner{display:flex;align-items:center;gap:11px;width:100%;text-align:left;background:linear-gradient(120deg,#0E5E46,#12805F);color:#FFF8EC;border:none;border-radius:18px;padding:12px 14px;margin-bottom:10px;cursor:pointer;}
.ptb-ic{font-size:20px;}
.ptb-tx{flex:1;display:flex;flex-direction:column;}
.ptb-tx b{font-size:14px;}
.ptb-tx small{font-size:11.5px;opacity:.85;font-weight:600;}
.ptb-go{font-size:20px;font-weight:900;opacity:.8;}
.pt-who{display:block;width:100%;text-align:left;background:#FFF3D6;border:1.5px solid #F0DCAE;color:#8A5A03;border-radius:14px;padding:10px 13px;font-size:13px;font-weight:700;margin-bottom:10px;cursor:pointer;}
.pchips{display:flex;gap:7px;overflow-x:auto;padding:2px 2px 8px;scrollbar-width:none;}
.pchips::-webkit-scrollbar{display:none;}
.pchip{flex:none;border:1.5px solid #EADFC8;background:#FFFDF7;color:var(--ink-soft);border-radius:999px;padding:6px 12px;font-size:12.5px;font-weight:800;cursor:pointer;}
.pchip-add{min-width:38px;font-size:15px;line-height:1;color:var(--green-deep,#0B6E4F);}
.pchip.active{background:linear-gradient(135deg,#0E5E46,#128A66);border-color:#0E5E46;color:#fff;box-shadow:0 4px 10px rgba(14,94,70,.22);}
.pchip-lock{font-size:10.5px;color:#B97F08;}
.pchip.active .pchip-lock{color:#FFD94D;}
.pt-list{display:flex;flex-direction:column;gap:10px;}
.pt-card{display:flex;gap:11px;background:#FFFDF7;border:1px solid #F1E7D3;border-radius:18px;padding:12px;cursor:pointer;box-shadow:0 2px 8px rgba(90,60,10,.05);}
.pt-ava{flex:none;}
.pt-ava .pf-av img{width:100%;height:100%;object-fit:cover;border-radius:50%;}
.pt-main{flex:1;min-width:0;}
.pt-namerow{display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.pt-name{font-size:15px;font-weight:900;}
.pt-g{font-size:13px;font-weight:900;color:var(--ink-mute);background:#F6EFE0;border-radius:999px;padding:1px 8px;line-height:1.35;}
.pt-g.gm{color:#1D4ED8;background:#E3EDFF;}
.pt-g.gf{color:#C2185B;background:#FFE9F3;}
.pt-langs{font-size:12.5px;color:var(--ink-soft);font-weight:700;margin-top:2px;}
.pt-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px;}
.pt-tag{font-size:10.5px;font-weight:800;border-radius:999px;padding:2.5px 8px;background:#F1E7D3;color:#7A6A45;}
.pt-tag.on{background:#E4F3E4;color:#1E7A34;}
.pt-tag.new{background:#E8F1FF;color:#2B5EA7;}
.pt-tag.int{background:#FFF0E0;color:#B45A06;}
.pt-tag.super{background:#FFF3D6;color:#8A5A03;border:1px solid #F0DCAE;}
.pt-match{font-size:10.5px;font-weight:900;border-radius:999px;padding:2.5px 8px;background:#EAF4EE;color:#0E5E46;}
.pt-match.good{background:#0E5E46;color:#FFD94D;}
.pt-loc{font-size:11.5px;color:var(--ink-mute);font-weight:700;margin-top:5px;}
.pt-acts{flex:none;display:flex;flex-direction:column;gap:6px;align-items:stretch;}
.pt-wave{background:var(--green,#0E5E46);color:#fff;border:none;border-radius:12px;padding:8px 10px;font-size:12px;font-weight:900;cursor:pointer;white-space:nowrap;}
.pt-wave.done{background:#EDF3ED;color:#5C665F;cursor:default;}
.pt-super{background:#FFF3D6;border:1.5px solid #F0DCAE;border-radius:12px;padding:6px 10px;font-size:14px;cursor:pointer;}
/* Screen review (owner, 2026-10-27): match % pill — sits where
   the Super Wave star used to be, on cards and on the profile. */
.pt-pct{margin-top:7px;text-align:center;background:linear-gradient(120deg,#FFF3D6,#FFE9B8);border:1.5px solid #F0DCAE;border-radius:12px;padding:6px 4px;font-size:12px;font-weight:900;color:#9A6B12;}
/* Screen review (owner, 2026-10-27): blurred teaser cards for
   members without the 24-hour Partners Filters pass — only the
   languages + level line, Say Hi and the match % stay clear. */
.pt-card.pt-locked .pt-ava,.pt-card.pt-locked .pt-name,.pt-card.pt-locked .pt-g,.pt-card.pt-locked .bdg,.pt-card.pt-locked .pt-tags,.pt-card.pt-locked .pt-loc{filter:blur(5px);opacity:.55;pointer-events:none;user-select:none;}
.pt-locknote{display:block;width:100%;margin:0 0 10px;background:#FFF8E8;border:1.5px dashed #E8cf8f;border-radius:14px;padding:9px 12px;font-size:12.5px;font-weight:800;color:#8a6410;cursor:pointer;}
.pfp-match{display:inline-flex;align-items:center;background:linear-gradient(120deg,#FFF3D6,#FFE9B8);border:1.5px solid #F0DCAE;border-radius:12px;padding:6px 12px;font-size:12.5px;font-weight:900;color:#9A6B12;}
.pt-more{margin-top:12px;}
.pt-blocked{display:block;margin:14px auto 4px;background:none;border:none;color:var(--ink-mute);font-size:12px;font-weight:800;cursor:pointer;text-decoration:underline;}
.perk-list{display:flex;flex-direction:column;gap:4px;margin-top:10px;}
.perk-row{display:flex;align-items:center;gap:11px;padding:10px 2px;}
.perk-row + .perk-row{border-top:1px solid #F4EBDD;}
.perk-ic{font-size:21px;flex:none;}
.perk-tx{flex:1;min-width:0;}
.perk-tx .t{font-size:14px;font-weight:800;}
.perk-tx .s{font-size:12px;color:var(--ink-soft);font-weight:600;}
.perk-state{flex:none;font-size:11.5px;font-weight:900;color:#8A5A03;background:#FFF3D6;border-radius:999px;padding:5px 10px;}
.perk-state.on{color:#1E7A34;background:#E4F3E4;}
.perk-buy{flex:none;width:auto;height:42px;min-height:42px;margin-top:0;padding:0 16px;font-size:12.5px;white-space:nowrap;border-radius:12px;}
.perk-note{font-size:12px;color:var(--ink-mute);font-weight:600;line-height:1.5;margin-top:12px;}
.pick-row{display:flex;width:100%;text-align:left;background:#FFFDF7;border:1.5px solid #F1E7D3;border-radius:14px;padding:12px 14px;font-size:14px;font-weight:800;cursor:pointer;margin-top:8px;}
.pick-row.sel{border-color:var(--green,#0E5E46);background:#EAF4EE;}
.pick-row.danger{color:#B3382E;}
.who-lock{text-align:center;padding:24px 18px;}
.who-lock-ic{font-size:40px;}
.who-lock-t{font-size:16.5px;font-weight:900;margin:8px 0 4px;}
.who-lock p{font-size:13px;color:var(--ink-soft);font-weight:600;margin:0 0 14px;}
.pfp-top{position:relative;text-align:center;padding-bottom:6px;}
.pfp-bg{height:110px;border-radius:20px;overflow:hidden;background:linear-gradient(120deg,#F6C453,#E8890C);}
.pfp-bg .pfp-bgmedia{width:100%;height:100%;object-fit:cover;display:block;}
.pfp-ava{display:flex;justify-content:center;margin-top:-38px;}
.pfp-name{font-size:19px;font-weight:900;margin-top:8px;display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;}
.pfp-sub{font-size:12.5px;color:var(--ink-soft);font-weight:700;margin-top:3px;}
.pfp-stats{display:flex;gap:9px;margin:13px 0;}
.pfp-stat{flex:1;background:#FFFDF7;border:1px solid #F1E7D3;border-radius:16px;padding:10px 6px;text-align:center;display:flex;flex-direction:column;gap:1px;}
.pfp-stat b{font-size:16px;font-weight:900;}
.pfp-stat span{font-size:10.5px;color:var(--ink-mute);font-weight:800;}
.pfp-about{font-size:13.5px;font-weight:600;line-height:1.55;padding:13px 14px;margin-bottom:12px;}
.pfp-ints{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px;}
.pfp-since{font-size:11.5px;color:var(--ink-mute);font-weight:700;margin-bottom:12px;}
.pfp-acts{display:flex;gap:8px;flex-wrap:wrap;}
.pfp-act{flex:1;padding:11px 8px;font-size:13.5px;white-space:nowrap;}
.pfp-act.gold{background:linear-gradient(180deg,#FFD23E,#F0A92E);color:#4A2E00;box-shadow:0 4px 0 #B97F08;}
.pfp-act.done{background:#EDF3ED;color:#5C665F;box-shadow:none;}
.pt-face{width:52px;height:52px;border-radius:50%;background:#EAF4EE;color:#0E5E46;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:900;overflow:hidden;flex:none;}
.pt-face.lg{width:78px;height:78px;font-size:29px;border:3px solid #FFF8EC;box-shadow:0 4px 14px rgba(90,60,10,.18);}
.pt-face img{width:100%;height:100%;object-fit:cover;}

/* ================================================================
   Fix 33 · 1-to-1 chat (Home chat list + conversation screen). */
.tab-badge{position:absolute;top:2px;right:calc(50% - 19px);background:#D64541;color:#fff;font-size:9.5px;font-weight:900;border-radius:999px;min-width:16px;height:16px;display:flex;align-items:center;justify-content:center;padding:0 4px;}
.tabbar .tab{position:relative;}
.chr-row{display:flex;gap:11px;align-items:center;background:#FFFDF7;border:1px solid #F3E9D2;border-radius:20px;padding:11px 12px;margin-bottom:9px;cursor:pointer;box-shadow:0 4px 14px rgba(14,94,70,.07);}
.chr-main{flex:1;min-width:0;}
.chr-top{display:flex;align-items:center;gap:7px;}
.chr-name{font-size:14.5px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.chr-when{margin-left:auto;font-size:11px;color:var(--ink-mute);font-weight:700;flex:none;}
.chr-prev{font-size:12.5px;color:var(--ink-soft);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px;}
.chr-prev.unread{color:var(--ink);font-weight:800;}
.chr-badge{flex:none;background:linear-gradient(135deg,#FF8A3D,#E85D04);color:#fff;font-size:11px;font-weight:900;border-radius:999px;min-width:20px;height:20px;display:flex;align-items:center;justify-content:center;padding:0 6px;box-shadow:0 3px 7px rgba(232,93,4,.35);}
.chr-r{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none;}
.chr-r .chr-when{margin-left:0;}
.chr-seen{font-size:10.5px;color:#12A150;font-weight:700;}

/* Fix 56 · Premium home — greeting hero + Online now strip */
.home-hero{margin:2px 0 12px;border-radius:24px;padding:15px 16px;color:#fff;background:linear-gradient(120deg,#0E5E46,#0B7A5C 55%,#128A66);position:relative;overflow:hidden;box-shadow:0 12px 24px rgba(14,94,70,.26);}
.home-hero::after{content:'💬';position:absolute;right:-8px;bottom:-22px;font-size:88px;opacity:.16;transform:rotate(-12deg);pointer-events:none;}
.home-hero h3{font-size:16.5px;font-weight:800;position:relative;z-index:1;}
.home-hero p{font-size:12.5px;opacity:.88;margin-top:3px;position:relative;z-index:1;}
.home-hero .hbtn{display:inline-block;margin-top:10px;background:linear-gradient(135deg,#FFC24B,#FF8A3D);color:#4A2400;font-weight:800;font-size:12.5px;padding:7px 14px;border:none;border-radius:999px;box-shadow:0 5px 12px rgba(255,138,61,.4);cursor:pointer;position:relative;z-index:1;}
.sec-row{display:flex;align-items:center;padding:2px 2px 8px;}
.sec-row h4{font-size:15px;font-weight:800;color:var(--ink);}
.onl-strip{display:flex;gap:13px;padding:0 2px 8px;overflow-x:auto;scrollbar-width:none;}
.onl-strip::-webkit-scrollbar{display:none;}
.onl-item{flex:none;width:58px;background:none;border:none;cursor:pointer;text-align:center;padding:0;}
.onl-face{position:relative;width:52px;height:52px;border-radius:50%;margin:0 auto;display:flex;align-items:center;justify-content:center;font-size:21px;font-weight:800;color:#fff;background:linear-gradient(135deg,#11998E,#38EF7D);box-shadow:0 5px 12px rgba(0,0,0,.16);overflow:visible;}
.onl-face img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block;}
.onl-face .av-flag{position:absolute;left:-3px;right:auto;bottom:-2px;font-size:11px;background:#fff;border-radius:50%;width:19px;height:19px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 5px rgba(0,0,0,.22);}
.onl-dot{position:absolute;left:auto;right:1px;bottom:2px;width:11px;height:11px;border-radius:50%;background:#2ECC71;border:2px solid #fff;z-index:2;}
.onl-nm{display:block;font-size:11px;margin-top:5px;font-weight:600;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* Fix 56 · Partners hero */
.pt-hero{background:linear-gradient(120deg,#0E5E46,#0B7A5C 55%,#128A66);border-radius:24px;padding:14px 14px 12px;margin:2px 0 12px;box-shadow:0 12px 24px rgba(14,94,70,.22);position:relative;overflow:hidden;}
.pt-hero::after{content:'💬';position:absolute;right:-10px;bottom:-24px;font-size:80px;opacity:.14;transform:rotate(-12deg);pointer-events:none;}
.pt-hero .pt-head{margin:0 0 8px;position:relative;z-index:1;}
.pt-hero .pt-title{color:#fff;}
.pt-hero-tx{color:#fff;font-weight:800;font-size:16.5px;position:relative;z-index:1;}
.pt-hero-tx small{display:block;font-weight:600;font-size:12.5px;opacity:.86;margin-top:3px;line-height:1.45;}
.pt-hero .btid-bar{margin:11px 0 2px;position:relative;z-index:1;}
.pt-hero .btid-bar input{background:rgba(255,255,255,.96);border:none;box-shadow:0 3px 8px rgba(0,0,0,.12);}
.pt-hero .btid-bar button{background:linear-gradient(135deg,#FFC24B,#FF8A3D);color:#4A2400;box-shadow:0 4px 10px rgba(255,138,61,.35);}
.ch-head{gap:6px;}
.ch-who{flex:1;display:flex;align-items:center;gap:9px;background:none;border:none;cursor:pointer;text-align:left;min-width:0;padding:0;}
.ch-who .pt-ava .pf{transform:scale(.82);transform-origin:left center;}
.ch-who .pt-face{width:38px;height:38px;font-size:15px;}
.ch-whotx{display:flex;flex-direction:column;min-width:0;}
.ch-name{font-size:15px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ch-sub{font-size:11px;color:var(--ink-soft);font-weight:700;}
.ch-msgs{display:flex;flex-direction:column;gap:8px;padding:6px 2px 12px;}
/* fix 46: the chat view fills the screen — messages scroll in their
   own area and the composer stays pinned to the bottom, instead of
   floating right under the last message with a void below it. */
.ch-view{display:flex;flex-direction:column;height:100%;transition:height .25s ease;}
.ch-view .ch-msgs{flex:1;min-height:0;overflow-y:auto;}
.ch-bub{max-width:78%;padding:9px 12px;border-radius:18px;font-size:14px;line-height:1.45;}
.ch-bub .ch-body{white-space:pre-wrap;word-break:break-word;}
.ch-bub .ch-time{font-size:10px;font-weight:700;opacity:.65;margin-top:3px;text-align:right;}
.ch-bub.me{align-self:flex-end;background:var(--green,#0E5E46);color:#FFF8EC;border-bottom-right-radius:6px;}
.ch-bub.them{align-self:flex-start;background:#FFFDF7;border:1.5px solid #F1E7D3;border-bottom-left-radius:6px;}
/* fix 47: equipped chat-bubble skins (sender's own skin styles their
   messages, both sides of the thread) */
.ch-bub.skin,.rm-bub.skin{color:#FFF;border:none;box-shadow:0 3px 10px rgba(94,42,10,.20);}
.ch-bub.skin .ch-time,.rm-bub.skin .ch-time{opacity:.85;}
.ch-bub.skin-sunset,.rm-bub.skin-sunset{background:linear-gradient(120deg,#FF8A3D,#F2507B 55%,#7B2FF7);}
.ch-bub.skin-saffron,.rm-bub.skin-saffron{background:linear-gradient(135deg,#FFD23E,#FF9933);}
.ch-bub.skin-chilli,.rm-bub.skin-chilli{background:linear-gradient(135deg,#FF5E62,#D7263D);}
.ch-bub.skin-kesar,.rm-bub.skin-kesar{background:linear-gradient(135deg,#FFB03A,#FF7A29);}
/* fix 50: the designed bubble set + generic equipped-bubble skins */
.ch-bub.skin-ocean,.rm-bub.skin-ocean{background:linear-gradient(120deg,#38BDF8,#2563EB 55%,#06B6D4);}
/* fix 51: Lemon Mint + Rose Garden designs are LIGHT pastel bubbles
   (white/pale bodies in their animations) — light skins, dark text,
   so chat matches the design the user bought. */
.ch-bub.skin.skin-lemon,.rm-bub.skin.skin-lemon{background:linear-gradient(120deg,#FFFDE7,#F7F49A 45%,#DFFBE9);color:#3A4413;}
.ch-bub.skin.skin-rose,.rm-bub.skin.skin-rose{background:linear-gradient(120deg,#FFF7FA,#FFE0EB 50%,#FFC9DA);color:#57122B;}
.ch-bub.skin.skin-lemon .ch-quote,.ch-bub.skin.skin-rose .ch-quote{border-left-color:rgba(0,0,0,.28);}
/* fix 52: the equipped bubble's real animation plays in the bubble */
.ch-bub.anim{position:relative;overflow:hidden;color:#FFF;}
.ch-bub.anim .bub-anim{position:absolute;inset:0;display:block;width:100%;height:100%;}
.ch-bub.anim .bub-anim svg{width:100%!important;height:100%!important;display:block;}
.ch-bub.anim video.bub-anim{object-fit:fill;}
.ch-bub.anim .bub-in{position:relative;z-index:1;}
.ch-bub.anim .ch-quote{background:rgba(0,0,0,.16);border-left-color:rgba(255,255,255,.7);}
.ch-bub.anim.bub-light{color:#46301F;}
.ch-bub.anim.bub-light .ch-quote{background:rgba(255,255,255,.38);border-left-color:rgba(0,0,0,.30);}
/* fix 53: badge beside the name */
.bdg{display:inline-flex;align-items:center;vertical-align:-3px;margin-left:3px;}
.bdg-media{width:20px;height:20px;display:inline-block;}
.bdg-media svg,.bdg-media img,.bdg-media video{width:100%;height:100%;display:block;object-fit:contain;}
.bdg-css{color:#E9A13B;display:inline-flex;}
.bdg-css svg{width:18px;height:18px;}
.sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
/* fix 53: stickers in chat */
.ch-stickerwrap{position:relative;display:inline-block;}
.ch-sticker{width:120px;height:120px;display:block;}
.ch-sticker svg,.ch-sticker img,.ch-sticker video{width:100%;height:100%;display:block;object-fit:contain;}
.ch-stickerfallback{font-size:64px;line-height:120px;display:block;text-align:center;width:120px;}
.ch-stickertime{position:absolute;right:2px;bottom:2px;font-size:10px;color:#8A7364;background:rgba(255,248,240,.88);padding:1px 6px;border-radius:8px;}
.stk-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:6px 2px 2px;}
.stk-tile{background:#FFF3E2;border:1px solid #F1DFC8;border-radius:14px;padding:8px 4px;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;font:inherit;}
.stk-media{width:64px;height:64px;display:block;}
.stk-media svg,.stk-media img,.stk-media video{width:100%;height:100%;display:block;object-fit:contain;}
.stk-name{font-size:11px;color:#6B5138;text-align:center;}
/* fix 53: the equipped theme tints the app */
body.bt-themed{background:var(--bt-tbg);}
body.bt-themed #sh-main{background:var(--bt-tbg);}
.ch-bub.skin-royal,.rm-bub.skin-royal{background:linear-gradient(120deg,#C084FC,#7C3AED 55%,#4C1D95);}
.ch-bub.skin-candy,.rm-bub.skin-candy{background:linear-gradient(120deg,#F87171,#FB923C 25%,#EAB308 45%,#4ADE80 65%,#38BDF8 85%,#A78BFA);}
.ch-bub.skin-g1,.rm-bub.skin-g1{background:linear-gradient(120deg,#34D399,#0EA5A4 55%,#0369A1);}
.ch-bub.skin-g2,.rm-bub.skin-g2{background:linear-gradient(120deg,#FBBF24,#F97316 55%,#DB2777);}
.ch-bub.skin-g3,.rm-bub.skin-g3{background:linear-gradient(120deg,#818CF8,#6D28D9 55%,#DB2777);}
.ch-bub.skin-g4,.rm-bub.skin-g4{background:linear-gradient(120deg,#2DD4BF,#0D9488 55%,#065F46);}
/* fix 48: message wrappers, reply quotes, reactions, reply bar */
.ch-msg{display:flex;flex-direction:column;user-select:none;-webkit-user-select:none;}
.ch-msg.me{align-items:flex-end;}
.ch-msg.them{align-items:flex-start;}
.ch-quote{display:block;background:rgba(0,0,0,.10);border-left:3px solid rgba(255,255,255,.65);border-radius:8px;padding:5px 8px;margin-bottom:5px;font-size:12px;line-height:1.3;cursor:pointer;max-width:100%;text-align:left;}
.ch-bub.them .ch-quote{background:rgba(14,94,70,.07);border-left-color:var(--green,#0E5E46);}
.ch-msg > .ch-quote{background:#FFF6E8;border:1.5px solid #F1E7D3;border-left:3px solid var(--green,#0E5E46);color:#5C4A2E;margin:0 2px 3px;}
.ch-quote b{display:block;font-size:11px;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ch-quote span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.8;}
.ch-reacts{display:flex;gap:4px;flex-wrap:wrap;margin:2px 2px 0;}
.ch-react{border:1.5px solid #F1E7D3;background:#FFFDF7;border-radius:999px;padding:1px 8px;font-size:12px;line-height:1.55;cursor:pointer;color:#5C4A2E;}
.ch-react.mine{background:#E9F6EF;border-color:var(--green,#0E5E46);font-weight:700;}
.ch-replybar{display:flex;align-items:center;gap:8px;background:#FFF6E8;border-top:1.5px solid #F1E7D3;padding:8px 12px;}
.ch-replybar[hidden]{display:none;}
.ch-replytx{flex:1;font-size:12.5px;color:#5C4A2E;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ch-replyx{width:28px;height:28px;border-radius:50%;border:1.5px solid #EADFC8;background:#FFFDF7;flex:none;cursor:pointer;color:#5C4A2E;}
.ms-reacts{display:flex;justify-content:space-between;gap:6px;padding:4px 0 12px;}
.ms-emoji{font-size:26px;width:47px;height:47px;border-radius:50%;border:1.5px solid #F1E7D3;background:#FFF6E8;cursor:pointer;flex:none;}
.ms-emoji.mine{border-color:var(--green,#0E5E46);background:#E9F6EF;box-shadow:0 0 0 2px rgba(14,94,70,.25);}
@keyframes chFlash{0%,100%{box-shadow:0 3px 10px rgba(94,42,10,.20);}30%{box-shadow:0 0 0 3.5px #FFC53D;}}
.ch-flash{animation:chFlash 1.3s ease;}
/* fix 49: photos in chat + full-screen viewer */
.ch-photobtn{flex:none;width:42px;height:42px;border-radius:50%;border:1.5px solid #F1E7D3;background:#FFFDF7;font-size:19px;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.ch-photowrap{position:relative;max-width:232px;}
.ch-photo{display:block;width:auto;max-width:232px;max-height:300px;min-width:170px;min-height:110px;border-radius:16px;border:1.5px solid #F1E7D3;background:#FFF6E8;cursor:pointer;}
.ch-photowrap.pending .ch-photo{opacity:.55;cursor:default;}
.ch-phototime{position:absolute;right:8px;bottom:8px;background:rgba(30,20,8,.55);color:#FFF;font-size:10.5px;padding:2px 8px;border-radius:999px;pointer-events:none;}
#photo-viewer{position:fixed;inset:0;background:rgba(12,8,4,.94);z-index:200;display:flex;align-items:center;justify-content:center;}
#photo-viewer img{max-width:100%;max-height:100%;object-fit:contain;}
.pv-x{position:absolute;top:calc(14px + env(safe-area-inset-top));right:14px;width:42px;height:42px;border-radius:50%;border:none;background:rgba(255,255,255,.16);color:#FFF;font-size:18px;cursor:pointer;}
.ch-giftwrap{display:flex;justify-content:center;padding:4px 0;}
.ch-giftcard{background:#FFF6E3;border:1.5px solid #F0DCAE;border-radius:18px;padding:12px 18px;text-align:center;max-width:230px;}
.ch-giftcard .gart.big{width:74px;height:74px;}
.ch-gifttx{font-size:12px;font-weight:800;color:#8A5A03;margin-top:6px;}
.ch-giftname{font-size:14px;font-weight:900;}
.ch-bar{position:sticky;bottom:0;display:flex;gap:8px;align-items:center;background:#fff;padding:9px 12px;border:1px solid var(--border);border-radius:999px;margin:6px 10px calc(8px + env(safe-area-inset-bottom));box-shadow:0 16px 32px rgba(14,94,70,.15),0 2px 6px rgba(14,94,70,.06);}
.ch-giftbtn{flex:none;width:42px;height:42px;border-radius:50%;border:1.5px solid #F0DCAE;background:#FFF3D6;font-size:19px;cursor:pointer;}
.ch-bar input{flex:1;border:1.5px solid var(--border);border-radius:999px;padding:11px 15px;font-size:14px;background:#fff;outline:none;min-width:0;}
.ch-send{flex:none;background:var(--green,#0E5E46);color:#fff;border:none;border-radius:999px;padding:11px 17px;font-size:13.5px;font-weight:900;cursor:pointer;}
.ch-send:disabled{opacity:.55;}

/* ================================================================
   Fix 34 · Moments feed. */
.mo-composer{background:#FFFDF7;border:1px solid #F1E7D3;border-radius:20px;padding:12px;margin-bottom:12px;}
.mo-crow{display:flex;gap:10px;align-items:flex-start;}
.mo-crow textarea{flex:1;border:1.5px solid #EADFC8;border-radius:14px;padding:10px 12px;font-size:14px;font-family:inherit;background:#FFFBF2;outline:none;resize:vertical;min-height:44px;}
.mo-photoprev{position:relative;margin-top:10px;}
.mo-photoprev img{width:100%;border-radius:14px;display:block;}
.mo-photoprev button{position:absolute;top:8px;right:8px;width:30px;height:30px;border-radius:50%;border:none;background:rgba(20,20,20,.72);color:#fff;font-size:14px;cursor:pointer;}
.mo-cactions{display:flex;justify-content:space-between;align-items:center;margin-top:10px;}
.mo-photo{display:inline-flex;align-items:center;gap:6px;background:#FFF3D6;border:1.5px solid #F0DCAE;color:#8A5A03;font-size:13px;font-weight:800;border-radius:999px;padding:8px 14px;cursor:pointer;}
.mo-post{padding:9px 22px;}
.mo-card{background:#FFFDF7;border:1px solid #F1E7D3;border-radius:20px;padding:13px 13px 9px;margin-bottom:11px;}
.mo-head{display:flex;gap:10px;align-items:center;}
.mo-htx{flex:1;min-width:0;}
.mo-name{font-size:14.5px;font-weight:900;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.mo-when{font-size:11px;color:var(--ink-mute);font-weight:700;margin-top:1px;}
.mo-menu{flex:none;}
.mo-body{font-size:14.5px;line-height:1.55;margin-top:9px;white-space:pre-wrap;word-break:break-word;}
.mo-photo{margin-top:9px;}
img.mo-photo{width:100%;border-radius:14px;display:block;margin-top:9px;}
.mo-acts{display:flex;gap:8px;margin-top:9px;border-top:1px solid #F5EDDA;padding-top:8px;}
.mo-act{background:none;border:none;font-size:13.5px;font-weight:800;color:var(--ink-soft);cursor:pointer;padding:5px 10px;border-radius:999px;}
.mo-act.liked{color:#D64541;}
.mo-promo{margin-bottom:11px;}
.cm-list{max-height:46vh;overflow-y:auto;display:flex;flex-direction:column;gap:11px;padding:4px 0 10px;}
.cm-row{display:flex;gap:9px;align-items:flex-start;}
.cm-row .pt-ava.cms .pf{transform:scale(.62);transform-origin:top left;}
.cm-row .pt-ava.cms{width:34px;height:34px;flex:none;}
.cm-row .pt-face{width:32px;height:32px;font-size:13px;}
.cm-name{font-size:12.5px;font-weight:900;}
.cm-body{font-size:13.5px;line-height:1.45;}
.cm-bar{display:flex;gap:8px;align-items:center;border-top:1px solid #F1E7D3;padding-top:10px;}
.cm-bar input{flex:1;border:1.5px solid #EADFC8;border-radius:999px;padding:10px 14px;font-size:13.5px;background:#FFFDF7;outline:none;min-width:0;}

/* ================================================================
   Fix 35 · Me tab, Notifications, Refer & Earn. */
.me-head{position:relative;background:#FFFDF7;border:1px solid #F1E7D3;border-radius:22px;padding:18px 14px 14px;text-align:center;overflow:hidden;margin-bottom:11px;}
.me-head .me-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.35;}
.me-head>*{position:relative;}
.me-ava{display:flex;justify-content:center;}
.me-ava .pf{transform:scale(1.5);margin:14px 0;}
.me-ava .pt-face{width:64px;height:64px;font-size:25px;}
.me-name{font-size:19px;font-weight:900;display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;}
.me-sub{font-size:12.5px;color:var(--ink-soft);font-weight:700;margin-top:3px;}
.me-loc{font-size:12px;color:var(--ink-soft);font-weight:700;margin-top:3px;}
.me-about{font-size:13.5px;font-style:italic;margin-top:7px;}
.me-since{font-size:11px;color:var(--ink-mute);font-weight:700;margin-top:6px;}
.me-stats{display:flex;background:#FFFDF7;border:1px solid #F1E7D3;border-radius:18px;padding:12px 4px;margin-bottom:11px;}
.me-stat{flex:1;text-align:center;}
.me-stat b{display:block;font-size:16px;}
.me-stat span{font-size:10.5px;color:var(--ink-mute);font-weight:800;text-transform:uppercase;letter-spacing:.4px;}
.me-rows{display:flex;flex-direction:column;gap:8px;}
.me-row{display:flex;align-items:center;gap:11px;background:#FFFDF7;border:1px solid #F1E7D3;border-radius:16px;padding:13px 14px;font-size:14.5px;font-weight:800;cursor:pointer;text-align:left;width:100%;}
.me-ric{font-size:18px;width:24px;text-align:center;}
.me-rlab{flex:1;}
.me-rright{font-size:12.5px;color:var(--ink-soft);font-weight:800;}
.me-pill{background:#D64541;color:#fff;font-size:11px;font-weight:900;border-radius:999px;padding:2px 8px;}
.me-rchev{color:var(--ink-mute);font-weight:900;}
.me-logout{width:100%;margin-top:14px;background:#FFF1F0;border:1.5px solid #F3C6C2;color:#B3372F;border-radius:16px;padding:13px;font-size:14.5px;font-weight:900;cursor:pointer;}
.nt-row{display:flex;gap:11px;align-items:flex-start;background:#FFFDF7;border:1px solid #F1E7D3;border-radius:16px;padding:12px 13px;margin-bottom:8px;}
.nt-row.new{border-color:#EFD9A0;background:#FFFBEE;}
.nt-ic{font-size:19px;width:38px;height:38px;flex:none;background:#FFF3D6;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.nt-tx{flex:1;font-size:13.5px;line-height:1.45;padding-top:2px;}
.nt-when{font-size:11px;color:var(--ink-mute);font-weight:700;margin-top:2px;}
.nt-dot{width:9px;height:9px;border-radius:50%;background:#D64541;flex:none;margin-top:6px;}
.rf-codecard{background:linear-gradient(135deg,#0E5E46,#12805F);border-radius:22px;padding:20px 16px;text-align:center;color:#EAF7F0;margin-bottom:11px;}
.rf-lab{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1.2px;opacity:.85;}
.rf-code{font-size:32px;font-weight:900;letter-spacing:3px;margin:8px 0 14px;color:#FFD98A;}
.rf-btns{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;}
.rf-btns .btn{border-radius:999px;}
.rf-how{padding:14px;margin-bottom:11px;}
.rf-howt{font-size:14px;font-weight:900;margin-bottom:9px;}
.rf-step{display:flex;gap:10px;align-items:center;font-size:13.5px;font-weight:700;margin-bottom:8px;}
.rf-step span{width:24px;height:24px;flex:none;border-radius:50%;background:#0E5E46;color:#fff;font-size:12.5px;font-weight:900;display:flex;align-items:center;justify-content:center;}
.rf-friends{background:#FFFDF7;border:1px solid #F1E7D3;border-radius:18px;padding:14px;}
.rf-friend{display:flex;justify-content:space-between;font-size:13.5px;font-weight:800;padding:7px 0;border-bottom:1px solid #F5EDDA;}
.rf-friend:last-child{border-bottom:none;}
.rf-joined{color:var(--ink-mute);font-weight:700;font-size:12px;}

/* ================================================================
   Fix 36/37 · BT ID + Follow. */
.btid-bar{display:flex;gap:8px;margin:2px 0 10px;}
.btid-bar input{flex:1;border:1.5px solid #EADFC8;border-radius:999px;padding:10px 15px;font-size:13.5px;background:#FFFDF7;outline:none;min-width:0;text-transform:uppercase;}
.btid-bar button{flex:none;background:var(--green,#0E5E46);color:#fff;border:none;border-radius:999px;padding:10px 18px;font-size:13px;font-weight:900;cursor:pointer;}
.pfp-btid{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:7px;font-size:13px;font-weight:700;color:var(--ink-soft);}
.pfp-btid b{color:var(--ink);letter-spacing:1px;}
.pfp-btid button{background:#FFF3D6;border:1.5px solid #F0DCAE;color:#8A5A03;font-size:11.5px;font-weight:800;border-radius:999px;padding:4px 11px;cursor:pointer;}
.pfp-follow{width:100%;margin-top:9px;border-radius:14px;padding:12px;font-size:14.5px;}
.pfp-follow.on{background:#FFF3D6;color:#8A5A03;border:1.5px solid #F0DCAE;box-shadow:none;}
.pfp-stat.tap{cursor:pointer;}
.pfp-stats{flex-wrap:wrap;}

/* ================================================================
   Fix 38 · Profile Visitors / Visited Profiles. */
.vis-wrap{margin-bottom:9px;}
.vis-wrap .pt-card{margin-bottom:3px;}
.vis-meta{font-size:11.5px;color:var(--ink-mute);font-weight:700;padding:0 6px;}

/* ================================================================
   Fix 39 · Protection Shield + Follow Requests. */
.pfp-follow.req{background:#EAF3FF;color:#175CD3;border:1.5px solid #B9D4F5;box-shadow:none;}
.sh-master{display:flex;align-items:center;gap:12px;padding:16px;margin-bottom:10px;}
.sh-m-tx{flex:1;min-width:0;}
.sh-m-t{font-size:16.5px;font-weight:900;}
.sh-m-s{font-size:12.5px;color:var(--ink-soft);font-weight:600;line-height:1.45;margin-top:3px;}
.sh-sw{flex:none;width:52px;height:30px;border-radius:999px;border:none;background:#D8D2C4;position:relative;cursor:pointer;padding:0;transition:background .2s;}
.sh-sw.big{width:60px;height:34px;}
.sh-sw i{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(60,40,0,.25);transition:left .2s;}
.sh-sw.big i{width:28px;height:28px;}
.sh-sw.on{background:var(--green,#0E5E46);}
.sh-sw.on i{left:25px;}
.sh-sw.big.on i{left:29px;}
.sh-list{padding:6px 14px;margin-bottom:10px;}
.sh-row{display:flex;align-items:center;gap:11px;padding:12px 0;border-bottom:1px solid #F3EAD6;}
.sh-row:last-child{border-bottom:none;}
.sh-row.dim{opacity:.55;}
.sh-ic{font-size:19px;flex:none;width:26px;text-align:center;}
.sh-tx{flex:1;min-width:0;}
.sh-t{font-size:14px;font-weight:800;}
.sh-s{font-size:12px;color:var(--ink-soft);font-weight:600;line-height:1.4;margin-top:1px;}
.sh-req{margin-bottom:10px;background:#FFF3D6;color:#8A5A03;border:1.5px solid #F0DCAE;box-shadow:none;}
.fq-wrap{margin-bottom:10px;}
.fq-wrap .pt-card{margin-bottom:3px;}
.fq-acts{display:flex;align-items:center;gap:8px;padding:2px 4px 0;}
.fq-yes{flex:1;padding:9px;font-size:13px;}
.fq-no{flex:1;padding:9px;font-size:13px;background:#fff;color:#B42318;border:1.5px solid #F0C6C0;box-shadow:none;}
.fq-when{font-size:11px;color:var(--ink-mute);font-weight:700;flex:none;}

/* ================================================================
   Fix 41 · Country flag badge on profile pictures. */
.av-wrap{position:relative;display:inline-flex;line-height:0;flex:none;}
.av-flag{position:absolute;left:-3px;bottom:-3px;width:20px;height:20px;border-radius:50%;
  background:#fff;border:2px solid #fff;box-shadow:0 1px 5px rgba(60,40,0,.35);
  display:flex;align-items:center;justify-content:center;font-size:15px;line-height:1;
  overflow:hidden;z-index:4;pointer-events:none;}
.av-wrap.lg .av-flag,.av-wrap.xl .av-flag{width:28px;height:28px;font-size:21px;left:-4px;bottom:-4px;}
.av-dot{position:absolute;right:1px;bottom:2px;width:11px;height:11px;border-radius:50%;background:#2ECC71;border:2px solid #fff;z-index:3;pointer-events:none;}

/* ================================================================
   Fix 40 · PREMIUM POLISH — motion system + visual depth.
   Transform/opacity only, so normal phones stay smooth. */
@keyframes btViewIn{from{opacity:0;transform:translateY(7px);}to{opacity:1;transform:none;}}
@keyframes btRiseIn{from{opacity:0;transform:translateY(12px) scale(.985);}to{opacity:1;transform:none;}}
@keyframes btSheen{0%{transform:translateX(-130%) skewX(-12deg);}55%,100%{transform:translateX(130%) skewX(-12deg);}}
@keyframes btSpin{to{transform:rotate(360deg);}}
#sh-main.anim-in{animation:btViewIn .26s ease both;}
#sh-main.anim-in .pt-card,#sh-main.anim-in .mo-card,#sh-main.anim-in .chr-row,
#sh-main.anim-in .fq-wrap,#sh-main.anim-in .vis-wrap{animation:btRiseIn .38s cubic-bezier(.2,.7,.25,1) both;}

/* Press feedback — everything tappable answers the finger. */
.btn,.pt-card,.chr-row,.me-row,.chip,.mo-like{transition:transform .13s ease;}
.btn:active{transform:scale(.975);}
.pt-card:active,.chr-row:active{transform:scale(.985);}
.me-row:active{transform:scale(.99);}

/* Depth — softer, richer cards. */
.card,.pt-card,.mo-card,.chr-row{border-radius:20px;border-color:#EFDFC0;box-shadow:0 8px 22px rgba(94,64,10,.09);}
.me-row{border-radius:18px;border-color:#EFDFC0;box-shadow:0 5px 14px rgba(94,64,10,.06);}
.btn{box-shadow:0 10px 24px rgba(217,164,65,.38), inset 0 1px 0 rgba(255,255,255,.55);}
.btn.green{background:linear-gradient(160deg,#12805F,#0B4F3A);box-shadow:0 10px 24px rgba(14,94,70,.32), inset 0 1px 0 rgba(255,255,255,.25);}

/* Premium White (Fix 60): a whisper of cool green light over the
   app — the warm cream glow is retired with the cream theme. */
body{background-image:radial-gradient(1000px 520px at 50% -150px, #EAF5EF 0%, rgba(234,245,239,0) 65%);background-attachment:fixed;}

/* Premium White (Fix 60) — the drawer head and the Me header are
   floating WHITE cards now; the Fix 40 green-gradient heroes are
   retired by the owner's tester-feedback redesign. */
.drawer-head{background:#fff;color:var(--ink);margin:12px 12px 4px;border:1px solid var(--border);border-radius:20px;box-shadow:0 14px 30px rgba(14,94,70,.09),0 2px 6px rgba(14,94,70,.05);}
.drawer-head .drawer-name{color:var(--ink);}
.drawer-head .drawer-sub{color:var(--ink-soft);}
.me-head:not(:has(.me-bg)){background:#fff;color:var(--ink);border-color:var(--border);box-shadow:0 16px 32px rgba(14,94,70,.09),0 2px 6px rgba(14,94,70,.05);}
.me-head:not(:has(.me-bg)) .me-name{color:var(--ink);}
.me-head:not(:has(.me-bg)) .me-sub,.me-head:not(:has(.me-bg)) .me-loc{color:var(--ink-soft);}
.pfp-top::before{content:'';position:absolute;inset:-30px 0 auto;height:190px;pointer-events:none;
  background:radial-gradient(420px 170px at 50% 0%, rgba(255,197,61,.20), rgba(255,197,61,0) 70%);}

/* Level-tag sheen for the sweep tags. */
.tag{position:relative;overflow:hidden;}
.tag-sweep::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg,transparent 32%,rgba(255,255,255,.55) 50%,transparent 68%);
  transform:translateX(-130%) skewX(-12deg);animation:btSheen 3s ease-in-out infinite;}

/* Loading becomes a calm gold spinner, not bare text. */
.lvl-loading::before{content:'';display:block;width:30px;height:30px;margin:0 auto 10px;border-radius:50%;
  border:3px solid #F0DCAE;border-top-color:var(--gold,#D9A441);animation:btSpin .8s linear infinite;}

@media (prefers-reduced-motion: reduce){
  #sh-main.anim-in,#sh-main.anim-in .pt-card,#sh-main.anim-in .mo-card,#sh-main.anim-in .chr-row,
  #sh-main.anim-in .fq-wrap,#sh-main.anim-in .vis-wrap,.tag-sweep::after,.lvl-loading::before{animation:none !important;}
}

/* Fix 40.2 · the Me hero is a flex item WITH overflow:hidden —
   that combination zeroes its automatic minimum size, so the
   column flex scroller crushed it to a sliver and clipped the
   avatar/name. flex:none keeps its natural height. */
.me-head{flex:none;}
/* fix 45: #sh-main is a flex column — NO direct child may shrink.
   Children with overflow!=visible (.pchips scroll rows) have an
   automatic minimum size of 0 and were crushed to slivers whenever
   the screen overflowed (Partners filter chips: 10px rows). The
   Me-hero crush (fix 40.2) was the same class. flex-shrink:0 makes
   every top-level block keep its natural height; the column scrolls. */
#sh-main>*{flex-shrink:0;}

/* ================================================================
   Fix 42 · Auth UX — a real secondary button (Create account). */
.btn.outline{background:#fff;color:var(--green);border:2px solid var(--green);
  box-shadow:0 4px 12px rgba(14,94,70,.12);}
#fg-noacct .btn{margin:2px 0 10px;}

/* ================================================================
   Fix 44 · Side menu completion — Wallet / Languages / Settings /
   Help screens. */
.btn.mini{width:auto;padding:8px 14px;font-size:13px;border-radius:999px;}
.wal-hero{background:linear-gradient(160deg,#0E5E46,#0A4A38 70%,#07382A);border-radius:20px;
  padding:20px 16px;text-align:center;color:#FFF6E8;margin-bottom:11px;box-shadow:0 10px 24px rgba(14,94,70,.25);}
.wal-coins{font-size:36px;font-weight:800;line-height:1.1;margin-top:6px;}
.wal-sub{color:#CDEBDB;font-size:13px;}
.wal-cards{display:flex;gap:10px;margin-bottom:11px;}
.wal-card{flex:1;text-align:center;padding:14px 8px;margin:0;}
.wal-n{font-size:21px;font-weight:800;color:#17301F;}
.wal-l{font-size:12px;color:#8A7B63;margin-top:2px;}
.wal-h{font-weight:800;color:#17301F;margin:14px 2px 8px;}
.wal-row{display:flex;align-items:center;gap:11px;background:#FFFDF7;border:1px solid #F1E7D3;
  border-radius:14px;padding:10px 12px;margin-bottom:8px;}
.wal-d{font-weight:800;font-size:14px;min-width:52px;text-align:center;padding:5px 8px;border-radius:999px;}
.wal-d.pos{color:#0E5E46;background:#E3F2E8;}
.wal-d.neg{color:#B3261E;background:#FBE9E7;}
.wal-mid{flex:1;min-width:0;}
.wal-reason{font-weight:600;color:#17301F;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.wal-when{font-size:12px;color:#8A7B63;}
.wal-bal{font-size:12px;color:#8A7B63;white-space:nowrap;}
.lang-sum{margin-bottom:11px;}
.lang-note{font-size:13px;color:#8A7B63;margin-top:6px;}
.pass-card{margin-bottom:11px;border:1.5px solid #E8A33D;background:linear-gradient(165deg,#FFFDF7,#FFF3DC);}
.pass-on{margin-bottom:11px;border:1.5px solid #0E5E46;}
.pass-t{font-weight:800;color:#17301F;font-size:16px;}
.pass-x{color:#8A7B63;font-size:13.5px;margin:5px 0 11px;}
.lang-row{display:flex;align-items:center;gap:11px;background:#FFFDF7;border:1px solid #F1E7D3;
  border-radius:14px;padding:11px 12px;margin-bottom:8px;}
.lang-mid{flex:1;min-width:0;}
.lang-name{font-weight:700;color:#17301F;}
.lang-nat{font-size:12.5px;color:#8A7B63;}
.pill-free{font-size:12px;font-weight:700;color:#0E5E46;background:#E3F2E8;padding:5px 11px;border-radius:999px;}
.pill-free.gold{color:#8A5A03;background:#FCEFC7;}
.set-group{margin-bottom:12px;}
.about-card{text-align:center;padding:18px 14px;}
.about-t{font-weight:800;font-size:18px;color:#17301F;margin-top:6px;}
.about-x{color:#8A7B63;font-size:13.5px;line-height:1.55;margin-top:4px;}
.help-contact{margin-bottom:6px;}
.faq{margin-bottom:8px;padding:13px 14px;}
.faq-q{font-weight:700;color:#17301F;margin-bottom:4px;}
.faq-a{color:#5C5240;font-size:14px;line-height:1.5;}

/* Fix 44.3 · breathing room inside the Fix 44 cards (their text sat
   flush on the card edge) */
.lang-sum,.pass-card,.help-contact{padding:15px 14px;}
.pass-on{padding:13px 14px;}

/* Fix 56.2 · narrow phones: the tug-of-war scene yields so the
   topbar (wordmark + coin pill + buttons) always fits — 320px too.
   This block sits at the END of file on purpose: the
   base .bt-scene rule lives mid-file and an equal-specificity
   media rule placed earlier loses to it. Breakpoint 350px:
   at 360px the scene + wordmark + pill + buttons were measured
   to fit exactly, so only genuinely narrow phones lose the
   scene. */
@media (max-width:350px){
  .bt-scene{display:none;}
}

/* Fix 58 · Notifications: device-push switch card + tappable rows. */
.nt-push{display:flex;gap:12px;align-items:center;margin:12px 16px 0;padding:14px 16px;}
.nt-pushtx{flex:1;display:flex;flex-direction:column;gap:2px;font-size:13px;min-width:0;}
.nt-pushtx span{color:#5C665F;}
.nt-push .btn{width:auto;padding:9px 14px;flex:none;}
.nt-row[data-nt-chat],.nt-row[data-nt-tab]{cursor:pointer;}

/* Fix 59 · Chat Backup sheet status line. */
.cb-status{margin:12px 2px 2px;padding:11px 13px;border-radius:12px;background:#F3EDE2;color:#4A554D;font-size:13px;line-height:1.45;}

/* ================= Fix 60 · Premium White (owner, 2026-10-27) =====
   Tester feedback: the cream theme read as a food app / dummy app.
   The whole app now sits on rich premium white; cards, the bottom
   menu, the chat composer and the login card FLOAT on soft green-
   tinted shadows; the face of the app is the hero pair (adult man +
   woman) with multilingual bubbles. No food imagery anywhere. */
@keyframes btFloaty{from{transform:translateY(0);}to{transform:translateY(-6px);}}
.floaty{animation:btFloaty 3.6s ease-in-out infinite alternate;}
@media (prefers-reduced-motion: reduce){.floaty{animation:none;}}

/* hero scene (login) */
.hero-scene{position:relative;width:252px;max-width:78vw;margin:0 auto;}
.hero-img{width:100%;display:block;}
.hero-bubs{display:flex;justify-content:space-between;padding:0 2px;}
.hbub{background:#EFF7F2;border:1.5px solid #DCEFE3;color:var(--green);font-weight:700;font-size:12px;
  padding:5px 9px;border-radius:13px;box-shadow:0 8px 18px rgba(14,94,70,.10);white-space:nowrap;}
.hbub.hb2{color:#B8860B;}
.hbub.hb3,.hbub.hb4{position:absolute;font-size:11px;}
.hbub.hb3{left:-8px;bottom:52px;color:#12805F;}
.hbub.hb4{right:-8px;bottom:78px;color:#7A5B00;}
/* Fix 60.2: every language bubble floats on its own timing. */
.hbub.hb1{animation:btFloaty 3.4s ease-in-out infinite alternate;}
.hbub.hb2{animation:btFloaty 4.2s ease-in-out .5s infinite alternate-reverse;}
.hbub.hb3{animation:btFloaty 3.9s ease-in-out .3s infinite alternate;}
.hbub.hb4{animation:btFloaty 3.6s ease-in-out .8s infinite alternate-reverse;}
@media (prefers-reduced-motion: reduce){.hbub{animation:none;}}

/* login — one floating white card; Create account floats on its top edge */
.auth-card{position:relative;background:#fff;border:1px solid var(--border);border-radius:22px;
  box-shadow:0 22px 44px rgba(14,94,70,.12),0 3px 8px rgba(14,94,70,.06);
  padding:36px 18px 18px;margin-top:36px;}
.btn.gold{background:linear-gradient(135deg,#F2C94C,#C99700);color:#3D2E00;
  box-shadow:0 12px 26px rgba(201,151,0,.38), inset 0 1px 0 rgba(255,255,255,.5);}
.auth-create{position:absolute;top:-24px;left:20px;right:20px;width:auto;height:48px;
  border-radius:999px;font-size:15px;z-index:2;}
.auth-or{display:flex;align-items:center;gap:10px;color:var(--ink-mute);font-size:12.5px;margin:2px 0 12px;}
.auth-or span{flex:1;height:1px;background:var(--border);}

/* sign-up referral hint — the owner's exact copy, nothing more */
.ref-hint{font-size:12.5px;font-weight:700;color:#B8860B;margin-top:7px;line-height:1.45;}

/* mobile step — locked country chip */
.mob-row{display:flex;gap:9px;align-items:stretch;}
.mob-chip{display:flex;align-items:center;gap:5px;background:#F4F2EC;border:1.5px solid var(--field-border);
  border-radius:13px;padding:0 12px;font-weight:800;color:var(--ink-soft);font-size:14.5px;white-space:nowrap;}

/* loading mark (replaces the cooking pot) */
.load-mark{display:flex;justify-content:center;animation:btFloaty 2.8s ease-in-out infinite alternate;}
.load-mark svg{width:54px;height:54px;}
@media (prefers-reduced-motion: reduce){.load-mark{animation:none;}}

/* app-bar brand mark */
.bt-mark{display:inline-flex;flex:none;}
.bt-mark svg{width:30px;height:30px;}

/* Fix 61 · colourful emoji icons (owner reference) — bottom nav
   and slide menu. Native emoji render rich and colourful on
   phones, exactly like the reference the owner shared. */
.tab-emoji{font-size:23px;line-height:1.1;}
.menu-emoji{font-size:20px;width:24px;text-align:center;flex:none;line-height:1;}
.menu-emoji.big{font-size:40px;width:auto;}
/* purchase feedback overlay (Fix 75) */
#buyfx{position:fixed;inset:0;z-index:110;background:rgba(9,26,19,.45);display:flex;align-items:center;justify-content:center;padding:22px;}
.buyfx-card{background:#fff;border-radius:22px;padding:26px 30px;text-align:center;box-shadow:0 18px 44px rgba(0,0,0,.28);animation:buyfxPop .28s ease both;max-width:280px;}
@keyframes buyfxPop{from{transform:scale(.82);opacity:0}to{transform:scale(1);opacity:1}}
.buyfx-coin{display:flex;justify-content:center;animation:buyfxFlip 1s ease-in-out infinite;}
@keyframes buyfxFlip{0%{transform:rotateY(0deg)}50%{transform:rotateY(180deg)}100%{transform:rotateY(360deg)}}
.buyfx-big{font-size:52px;line-height:1.1;animation:buyfxPop .3s ease both;}
.buyfx-t{font-weight:900;font-size:17px;color:#12332a;margin-top:10px;}
.buyfx-s{font-size:12.5px;color:#8a8378;margin-top:3px;font-weight:700;}
/* Fix 76 · Moments redesign */
.mo-langs{font-size:11.5px;color:var(--ink-mute);font-weight:800;margin-top:1px;letter-spacing:.02em;}
.mo-topicrow{margin-top:8px;}
.mo-topic{display:inline-block;background:#EAF6F0;border:1.5px solid #BFE3D2;color:#0E5E46;font-size:12px;font-weight:800;border-radius:999px;padding:5px 11px;cursor:pointer;}
.mo-topic.on{cursor:default;}
.mo-bell{position:relative;margin-left:auto;font-size:19px;}
.mo-badge{position:absolute;top:-4px;right:-6px;background:#E2483D;color:#fff;font-size:10px;font-weight:900;border-radius:999px;padding:1.5px 6px;border:2px solid #fff;}
.mo-new{width:auto;padding:8px 14px;font-size:13px;margin-left:8px;}
.mo-entry{display:flex;align-items:center;gap:10px;width:100%;background:#fff;border:1.5px solid #EFE6D2;border-radius:16px;padding:9px 12px;margin-bottom:12px;cursor:pointer;text-align:left;}
.mo-entry .pt-ava .pf{transform:scale(.72);transform-origin:center;}
.mo-entry-tx{flex:1;color:var(--ink-mute);font-size:13.5px;font-weight:700;}
.mo-entry-ic{font-size:17px;}
.md-likers{display:flex;align-items:center;gap:10px;background:#FFFDF7;border:1px solid #F1E7D3;border-radius:16px;padding:10px 13px;margin-bottom:11px;}
.md-likefaces{display:flex;padding-left:14px;}
.md-likefaces .pt-ava{margin-left:-14px;}
.md-likefaces .pt-ava:first-child{margin-left:-14px;}
.md-likecount{font-weight:900;font-size:13.5px;color:#12332a;}
.md-chead{font-weight:900;font-size:15px;margin:14px 2px 9px;color:#12332a;}
.md-clist{display:flex;flex-direction:column;gap:12px;padding-bottom:8px;}
.cm-when{font-weight:700;color:var(--ink-mute);font-size:11px;}
.md-bar{position:sticky;bottom:10px;display:flex;gap:8px;align-items:center;background:#fff;border:1.5px solid #EFE6D2;border-radius:999px;padding:6px 6px 6px 16px;box-shadow:0 8px 22px rgba(30,42,36,.12);margin-top:12px;}
.md-bar input{flex:1;border:none;outline:none;font-size:14px;background:transparent;min-width:0;font-family:inherit;}
.mc-wrap{padding:2px 2px 20px;}
.mc-postbtn{width:auto;padding:8px 18px;}
.mc-hint{font-size:13px;color:var(--ink-mute);line-height:1.5;margin:6px 2px 12px;font-weight:600;}
#mc-body{width:100%;border:1.5px solid #EFE6D2;border-radius:16px;padding:13px;font-size:15px;line-height:1.55;resize:vertical;font-family:inherit;background:#FFFDF7;box-sizing:border-box;}
.mc-photo{display:flex;align-items:center;justify-content:center;width:96px;height:96px;border:2px dashed #D9CBA6;border-radius:16px;font-size:34px;color:#B08A2E;cursor:pointer;margin-top:12px;background:#FFFDF7;}
.mc-topicrow{margin-top:16px;display:flex;align-items:center;gap:9px;flex-wrap:wrap;}
.mc-topicbtn{background:#fff;border:1.5px solid #EFE6D2;border-radius:999px;padding:8px 14px;font-weight:800;font-size:13px;color:#12332a;cursor:pointer;}
.mc-topicx{background:none;border:none;font-size:15px;cursor:pointer;color:var(--ink-mute);}
.mc-topicinform{display:inline-flex;gap:8px;align-items:center;}
.mc-topicinform[hidden]{display:none;}
.mc-topicinform input{border:1.5px solid #EFE6D2;border-radius:999px;padding:8px 13px;font-size:13.5px;outline:none;max-width:200px;font-family:inherit;}
.mc-topicadd{width:auto;padding:8px 14px;font-size:13px;}
.mchips{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 12px;scrollbar-width:none;}
.mchips::-webkit-scrollbar{display:none;}
.mchip{flex:none;background:#fff;border:1.5px solid #EFE6D2;border-radius:999px;padding:7px 14px;font-weight:800;font-size:13px;color:var(--ink-soft);cursor:pointer;}
.mchip.active{background:#0E5E46;color:#fff;border-color:#0E5E46;}
.mn-row{display:flex;gap:11px;align-items:flex-start;background:#FFFDF7;border:1px solid #F1E7D3;border-radius:16px;padding:11px 12px;margin-bottom:9px;cursor:pointer;}
.mn-tx{flex:1;min-width:0;}
.mn-line{font-size:13.5px;line-height:1.45;}
.mn-partner{display:inline-block;background:#EAF6F0;color:#0E5E46;font-size:10.5px;font-weight:900;border-radius:6px;padding:1.5px 6px;vertical-align:1px;}
.mn-thumb{width:52px;height:52px;object-fit:cover;border-radius:12px;flex:none;}
.mn-snip{flex:none;max-width:104px;font-size:11px;color:var(--ink-mute);background:#FBF6EA;border-radius:10px;padding:7px 9px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.mn-ic{font-size:22px;display:flex;align-items:center;justify-content:center;width:44px;}
.gsend-to{text-align:center;font-size:13.5px;font-weight:800;color:#12332a;background:#FFF3D6;border:1.5px solid #F0DCAE;border-radius:12px;padding:8px 10px;margin:0 0 10px;}
/* Fix 77 · top header on the Home screen only */
.shell.no-appbar .appbar{display:none;}
/* Fix 78 · Moments v2 (Set 10) */
.mo2-card{background:#fff;padding:14px 16px 8px;border-bottom:10px solid #F5F4F0;}
#sh-main.anim-in .mo2-card{animation:btRiseIn .38s cubic-bezier(.2,.7,.25,1) both;}
.mo2-head{display:flex;align-items:center;gap:11px;}
.mo2-htx{flex:1;min-width:0;}
.mo2-name{font-size:15px;font-weight:800;color:#1D1D1B;display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.mo2-sub{font-size:12px;color:#9A9A94;font-weight:600;margin-top:2.5px;}
.mo2-body{font-size:15px;line-height:1.6;color:#23231F;margin-top:10px;white-space:pre-wrap;word-break:break-word;cursor:pointer;}
.mo2-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px;}
.mo2-tag{background:#EAF6F0;color:#0E7A55;font-size:12.5px;font-weight:800;border-radius:999px;padding:5px 11px;cursor:pointer;}
.mo2-ph1{width:100%;border-radius:14px;display:block;margin-top:11px;cursor:pointer;}
.mo2-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:11px;}
.mo2-grid img{width:100%;height:150px;object-fit:cover;display:block;cursor:pointer;}
.mo2-grid.g2 img{height:170px;border-radius:12px;}
.mo2-grid.g3 img:first-child{grid-column:1 / -1;height:180px;border-radius:12px;}
.mo2-grid.g3 img{height:120px;border-radius:12px;}
.mo2-grid.g4 img{height:128px;}
.mo2-grid.g4 img:nth-child(1){border-radius:12px 4px 4px 4px;}
.mo2-grid.g4 img:nth-child(2){border-radius:4px 12px 4px 4px;}
.mo2-grid.g4 img:nth-child(3){border-radius:4px 4px 4px 12px;}
.mo2-grid.g4 img:nth-child(4){border-radius:4px 4px 12px 4px;}
.mo2-acts{display:flex;margin-top:11px;border-top:1px solid #F1F0EB;padding:9px 2px 5px;}
.mo2-act{flex:1;background:none;border:none;display:flex;align-items:center;justify-content:center;gap:7px;font-size:13.5px;font-weight:700;color:#5B5B57;cursor:pointer;padding:4px 2px;font-family:inherit;}
.mo2-act.liked{color:#E2483D;}
.mo-tick{margin:7px 0 5px;background:linear-gradient(90deg,#FFF6E0,#FDEBC8);border:1px solid #F0DCAE;border-radius:999px;overflow:hidden;white-space:nowrap;padding:6px 0;}
.mo-tick-run{display:inline-block;font-size:12px;font-weight:800;color:#8A5A03;animation:moTick 13s linear infinite;will-change:transform;}
@keyframes moTick{from{transform:translateX(6%);}to{transform:translateX(-50%);}}
.mo2-feed .pt-banner, .pt-banner.mo-promo{margin:10px 14px;}
/* gift sheet */
.mg-to{text-align:center;font-size:13px;color:#5B5B57;font-weight:600;margin-top:6px;}
.mg-to b{color:#0E5E46;}
.mg-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px;max-height:300px;overflow-y:auto;}
.mg-tile{border:2px solid #F1EFE7;border-radius:16px;padding:10px 3px 8px;text-align:center;background:#FFFDF8;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;}
.mg-tile.sel{border-color:#E7B93C;background:#FFF6E0;box-shadow:0 4px 14px rgba(231,185,60,.35);}
.mg-nm{font-size:11px;font-weight:800;line-height:1.25;}
.mg-pr{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:800;color:#B08A2E;}
.mg-send{margin-top:14px;}
.mg-bal{text-align:center;font-size:11.5px;color:#9A9A94;font-weight:700;margin-top:9px;display:flex;align-items:center;justify-content:center;gap:4px;}
/* compose v2 */
.mc-photos{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;align-items:flex-start;}
.mc-ph{position:relative;width:76px;height:76px;flex:none;}
.mc-ph img{width:76px;height:76px;object-fit:cover;border-radius:14px;display:block;}
.mc-ph button{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:50%;border:none;background:#23231F;color:#fff;font-size:11px;cursor:pointer;line-height:1;}
.mc-photo.sm{width:76px;height:76px;margin-top:0;font-size:26px;border-radius:14px;}
.mc-photocap{font-size:11.5px;color:#9A9A94;font-weight:700;margin-top:7px;}
.mc-tagzone{margin-top:16px;}
.mc-taglab{font-size:12px;font-weight:850;color:#5B5B57;letter-spacing:.02em;}
.mc-taglab span{color:#B08A2E;}
.mc-tagchips{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px;}
.mc-tagchip{background:#EAF6F0;color:#0E7A55;font-size:12.5px;font-weight:800;border-radius:999px;padding:6px 8px 6px 11px;display:inline-flex;align-items:center;gap:5px;}
.mc-tagchip button{background:none;border:none;color:#7FB5A0;font-size:12px;cursor:pointer;padding:0 2px;}
#mc-tag{width:100%;margin-top:10px;border:1.5px solid #EFE6D2;border-radius:12px;padding:11px 13px;font-size:14px;outline:none;font-family:inherit;box-sizing:border-box;background:#fff;}
#mc-tag:focus{border-color:#0E5E46;}
.mc-tagdd{margin-top:8px;}
.mc-dd-head{font-size:11px;font-weight:900;color:#B08A2E;letter-spacing:.06em;padding:2px 2px 6px;}
.mc-dd-row{display:flex;align-items:center;width:100%;background:#fff;border:1.5px solid #EFEDE4;border-radius:12px;padding:10px 13px;font-size:13.5px;font-weight:700;color:#23231F;cursor:pointer;margin-bottom:7px;font-family:inherit;text-align:left;}
.mc-dd-c{margin-left:auto;font-size:11.5px;color:#9A9A94;font-weight:700;}
@media (prefers-reduced-motion: reduce){
  #sh-main.anim-in .mo2-card{animation:none !important;}
  .mo-tick-run{animation:none !important;}
}
/* Fix 79 · Me v2 (Set 11) + legal docs */
#sh-events{margin:2px 14px 10px;}
.me2-hero{background:linear-gradient(180deg,#FFFFFF,#FDFBF4);padding:18px 16px 13px;border-bottom:10px solid #F5F4F0;}
.me2-hero-top{display:flex;gap:13px;align-items:center;}
.me2-ava{flex:none;}
.me2-hid{flex:1;min-width:0;}
.me2-name{font-size:20px;font-weight:900;display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:#1D1D1B;}
.me2-btid{background:none;border:none;padding:2px 0 0;font-size:12.5px;color:#9A9A94;font-weight:700;cursor:pointer;font-family:inherit;}
.me2-btid b{color:#5B5B57;}
.me2-copy{color:#B08A2E;font-weight:900;}
.me2-sub{font-size:13px;color:#5B5B57;font-weight:650;margin-top:11px;}
.me2-loc{font-size:12.5px;color:#8A8A84;font-weight:600;margin-top:3px;}
.me2-about{font-size:13.5px;font-style:italic;color:#3A3A36;margin-top:6px;}
.me2-since{font-size:11.5px;color:#B4B4AC;font-weight:600;margin-top:4px;}
.me2-social{display:flex;background:#fff;border-bottom:10px solid #F5F4F0;}
.me2-half{flex:1;background:none;border:none;text-align:center;padding:12px 4px 11px;cursor:pointer;font-family:inherit;}
.me2-half + .me2-half{border-left:1px solid #F1F0EB;}
.me2-half b{font-size:17px;font-weight:900;color:#1D1D1B;}
.me2-half span{font-size:12px;color:#9A9A94;font-weight:700;margin-left:5px;}
.me2-freq{display:flex;align-items:center;gap:8px;width:calc(100% - 32px);margin:12px 16px 0;background:#FFF6E0;border:1px solid #F0DCAE;border-radius:12px;padding:10px 13px;font-size:13px;font-weight:700;color:#8A5A03;cursor:pointer;font-family:inherit;text-align:left;}
.me2-fgo{margin-left:auto;font-weight:900;}
.me2-stats{display:flex;background:#fff;border-radius:18px;margin:14px 16px 0;box-shadow:0 3px 14px rgba(30,40,35,.06);padding:14px 4px 12px;}
.me2-stat{flex:1;background:none;border:none;text-align:center;cursor:pointer;font-family:inherit;padding:0;}
.me2-stat + .me2-stat{border-left:1px solid #F4F3EE;}
.me2-stat b{font-size:17px;font-weight:900;color:#1D1D1B;display:flex;align-items:center;justify-content:center;gap:4px;}
.me2-stat span{font-size:10.5px;color:#9A9A94;font-weight:800;letter-spacing:.07em;text-transform:uppercase;display:block;margin-top:2px;}
.me2-tiles{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;padding:14px 16px 2px;}
.me2-tile{border:none;border-radius:18px;padding:13px 10px 11px;text-align:left;cursor:pointer;font-family:inherit;display:flex;flex-direction:column;}
.me2-tile.t-green{background:#EAF6F0;} .me2-tile.t-gold{background:#FDF3DC;} .me2-tile.t-rose{background:#FDECEF;}
.me2-tile.t-sky{background:#E9F3FB;} .me2-tile.t-violet{background:#F0EBFA;} .me2-tile.t-peach{background:#FDEEE2;}
.me2-tic{font-size:25px;}
.me2-tt{font-size:13px;font-weight:850;color:#1D1D1B;margin-top:6px;}
.me2-ts{font-size:11px;font-weight:650;color:#8A8A84;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.me2-group{background:#fff;border-radius:18px;margin:14px 16px 0;box-shadow:0 3px 14px rgba(30,40,35,.06);overflow:hidden;}
.me2-ghead{font-size:11.5px;font-weight:900;letter-spacing:.09em;color:#B08A2E;padding:13px 16px 3px;text-transform:uppercase;}
.me2-lrow{display:flex;align-items:center;gap:12px;width:100%;background:none;border:none;padding:12.5px 16px;cursor:pointer;font-family:inherit;text-align:left;}
.me2-lrow + .me2-lrow{border-top:1px solid #F5F4EF;}
.me2-ic{font-size:19px;width:26px;text-align:center;flex:none;}
.me2-tx{flex:1;font-size:14.5px;font-weight:750;color:#1D1D1B;}
.me2-rt{font-size:12.5px;color:#9A9A94;font-weight:750;}
.me2-chev{color:#C9C9C2;font-size:16px;font-weight:900;}
.me2-pill{background:#E2483D;color:#fff;font-size:11px;font-weight:900;border-radius:999px;padding:2px 8px;}
.me2-onoff{font-size:12px;font-weight:850;color:#0E7A55;background:#EAF6F0;border-radius:999px;padding:3px 9px;}
.me2-logout{display:block;width:calc(100% - 32px);margin:16px;text-align:center;background:#fff;border:1.5px solid #F3D9D5;color:#D64541;font-size:15px;font-weight:850;border-radius:16px;padding:13px;cursor:pointer;font-family:inherit;box-shadow:0 3px 14px rgba(30,40,35,.05);}
#sh-main.anim-in .me2-group, #sh-main.anim-in .me2-stats{animation:btRiseIn .38s cubic-bezier(.2,.7,.25,1) both;}
/* legal docs */
.lg-doc{padding:8px 20px 22px;background:#fff;}
.lg-upd{font-size:11.5px;color:#B4B4AC;font-weight:700;}
.lg-doc h3{font-size:15.5px;font-weight:900;margin:16px 0 6px;color:#1D1D1B;}
.lg-doc p, .lg-doc li{font-size:13.5px;line-height:1.65;color:#3D3D38;}
.lg-doc ul{padding-left:18px;}
.lg-doc li{margin-top:3px;}
.lg-ladder{display:flex;gap:6px;margin-top:9px;}
.lg-rung{flex:1;text-align:center;border-radius:12px;padding:9px 3px;font-size:11px;font-weight:850;line-height:1.35;}
.lg-rung b{display:block;font-size:15px;margin-bottom:2px;}
.lg-rung.r1{background:#FDF3DC;color:#8A5A03;} .lg-rung.r2{background:#FDEBD9;color:#9A5410;}
.lg-rung.r3{background:#FDE3D3;color:#A03D12;} .lg-rung.r4{background:#FADBD8;color:#96281B;}
.lg-coinbox{background:linear-gradient(135deg,#0E5E46,#12805F);border-radius:16px;padding:15px 16px;margin-top:6px;}
.lg-coinbox h3{color:#FFD98A;margin:0 0 6px;}
.lg-coinbox p{color:#D9F2E4;font-size:13px;}
@media (prefers-reduced-motion: reduce){
  #sh-main.anim-in .me2-group, #sh-main.anim-in .me2-stats{animation:none !important;}
}
/* Fix 80 · Edit Profile */
.me2-hero{position:relative;}
.me2-edit{position:absolute;top:14px;right:14px;background:#fff;border:1.5px solid #EFE9D8;color:#8A6D1F;font-size:12.5px;font-weight:850;border-radius:999px;padding:6px 13px;cursor:pointer;font-family:inherit;box-shadow:0 2px 8px rgba(30,40,35,.07);z-index:2;}
.ep-wrap{padding:20px 20px 26px;background:#fff;display:flex;flex-direction:column;}
.ep-ava{align-self:center;}
.ep-photo{align-self:center;margin-top:12px;background:#FDF3DC;border:1.5px solid #F0DCAE;color:#8A5A03;font-size:13.5px;font-weight:850;border-radius:999px;padding:8px 18px;cursor:pointer;font-family:inherit;}
.ep-lab{font-size:12px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:#9A9A94;margin:20px 0 7px;}
.ep-in{width:100%;box-sizing:border-box;border:1.5px solid #ECECE6;border-radius:14px;padding:12px 14px;font-size:15px;font-family:inherit;color:#1D1D1B;background:#FBFBF8;outline:none;}
.ep-in:focus{border-color:#E8C766;background:#fff;}
.ep-about{resize:none;line-height:1.5;}
.ep-count{text-align:right;font-size:11.5px;color:#B4B4AC;font-weight:700;margin-top:5px;}
.ep-save{margin-top:18px;}
.ep-note{text-align:center;font-size:12px;color:#B4B4AC;font-weight:600;margin-top:14px;}
/* Fix 81 · Set 12 profile, photo viewer, privacy */
.pfp-bg{height:150px;position:relative;}
.pf2-scene{position:absolute;inset:0;}
.pf2-bgname{position:absolute;right:10px;bottom:10px;background:rgba(0,0,0,.38);color:#FFE9B0;font-size:10.5px;font-weight:800;padding:3px 9px;border-radius:999px;z-index:2;}
.pfp-ava{cursor:pointer;}
.pf2-taphint{text-align:center;font-size:11px;color:#B4B4AC;font-weight:700;margin-top:7px;}
.pf2-status{text-align:center;font-size:12.5px;font-weight:800;color:#9A9A94;margin-top:3px;}
.pf2-status.on{color:#1F9D66;}
.pf2-langs{display:flex;justify-content:center;align-items:flex-start;gap:20px;margin-top:11px;}
.pf2-lang{text-align:center;min-width:104px;}
.pf2-lcd{font-size:16px;font-weight:900;}
.pf2-lnm{font-size:11px;color:#9A9A94;font-weight:700;margin-top:1px;}
.pf2-dots{font-size:9px;letter-spacing:2.5px;color:#E8A33D;display:block;margin-top:3px;}
.pf2-dots .off{color:#E3E1D8;}
.pf2-larrow{align-self:center;color:#C9C9C2;font-weight:900;}
.pf2-idrow{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;margin-top:10px;font-size:13px;color:#9A9A94;font-weight:700;}
.pf2-idrow b{color:#3A3A36;letter-spacing:.03em;}
.pf2-idrow button{background:#FDF3DC;color:#8A5A03;border:1px solid #F0DCAE;font-size:11.5px;font-weight:850;border-radius:999px;padding:3px 11px;cursor:pointer;font-family:inherit;}
.pf2-loc{color:#8A8A84;font-weight:700;}
.pf2-stats{display:flex;background:#FFFDF6;border:1px solid #F4EDD8;border-radius:18px;margin:14px 16px 0;padding:14px 4px 12px;box-shadow:0 3px 14px rgba(30,40,35,.05);}
.pf2-stat{flex:1;text-align:center;}
.pf2-stat + .pf2-stat{border-left:1px solid #F4F1E6;}
.pf2-stat b{font-size:17px;font-weight:900;display:block;}
.pf2-stat span{font-size:10px;color:#9A9A94;font-weight:800;letter-spacing:.05em;text-transform:uppercase;display:block;margin-top:2px;}
.pf2-stat.tap{cursor:pointer;}
.pf2-about{background:#fff;border-radius:16px;margin:12px 16px 0;padding:13px 15px;font-size:14px;line-height:1.55;box-shadow:0 3px 14px rgba(30,40,35,.05);border-left:4px solid #E7B93C;}
.pf2-sec{font-size:11.5px;font-weight:900;letter-spacing:.09em;color:#B08A2E;margin:16px 18px 8px;text-transform:uppercase;}
.pf2-ints{display:flex;flex-wrap:wrap;gap:7px;padding:0 16px;}
.pf2-int{font-size:12.5px;font-weight:750;background:#F4F3EE;color:#5B5B57;border-radius:999px;padding:6px 12px;}
.pf2-int.shared{background:#EAF6F0;color:#0E5E46;border:1px solid #BFE6D2;}
.pf2-shared{font-size:11.5px;color:#1F9D66;font-weight:750;padding:6px 18px 0;}
.pf2-moms{display:flex;gap:8px;padding:0 16px;}
.pf2-mom{flex:1;height:86px;border:none;border-radius:14px;position:relative;overflow:hidden;cursor:pointer;font-family:inherit;padding:0;text-align:left;}
.pf2-mom.g0{background:linear-gradient(135deg,#F2B33D,#E85D75);}
.pf2-mom.g1{background:linear-gradient(135deg,#12805F,#2AA08A);}
.pf2-mom.g2{background:linear-gradient(135deg,#7A5AF8,#B983FF);}
.pf2-mom img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.pf2-mom span{position:absolute;left:9px;right:9px;bottom:7px;color:#fff;font-size:11px;font-weight:800;text-shadow:0 1px 4px rgba(0,0,0,.5);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.pf2-gifts{display:flex;gap:9px;padding:0 16px;flex-wrap:wrap;}
.pf2-gift{width:56px;text-align:center;}
.pf2-gart{width:52px;height:52px;border-radius:16px;background:#FBF7EA;display:flex;align-items:center;justify-content:center;overflow:hidden;margin:0 auto;}
.pf2-gart .sc-art{transform:scale(.6);}
.pf2-gname{font-size:10px;font-weight:750;color:#8A8A84;display:block;margin-top:3px;}
.pf2-acts{padding:14px 16px 8px;}
.pf2-primary{display:block;width:100%;border:none;border-radius:16px;padding:15px;font-size:16px;font-weight:900;color:#fff;background:linear-gradient(90deg,#12805F,#0E5E46);box-shadow:0 8px 20px rgba(14,94,70,.28);cursor:pointer;font-family:inherit;}
.pf2-primary.chat{background:linear-gradient(90deg,#F2B33D,#E8873A);box-shadow:0 8px 20px rgba(232,135,58,.3);}
.pf2-primary.req{background:#FFF6E0;color:#B8860B;box-shadow:none;border:1.5px solid #F0DCAE;}
.pf2-primary.banner{background:linear-gradient(90deg,#12805F,#0E5E46);}
.pf2-subrow{display:flex;gap:9px;margin-top:10px;}
.pf2-sub{flex:1;border-radius:14px;padding:11px 4px;text-align:center;font-size:13px;font-weight:850;background:#FDF3DC;color:#8A5A03;border:1px solid #F0DCAE;cursor:pointer;font-family:inherit;}
.pf2-sub.following{background:#EAF6F0;color:#0E5E46;border-color:#BFE6D2;}
.pf2-match{flex:1;border-radius:14px;padding:11px 4px;text-align:center;font-size:13px;font-weight:900;background:#FFF6E0;color:#B8860B;border:1px solid #F0DCAE;display:flex;align-items:center;justify-content:center;}
/* Me banner band */
.me2-banner{margin:-18px -16px 12px;height:92px;border-radius:0 0 18px 18px;overflow:hidden;position:relative;}
.me2-bgscene{position:absolute;inset:0;}
.me2-bgmedia{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.me2-bgchange{position:absolute;right:10px;bottom:10px;background:rgba(255,255,255,.92);border:none;color:#0E5E46;font-size:12px;font-weight:900;border-radius:999px;padding:6px 13px;cursor:pointer;font-family:inherit;box-shadow:0 3px 10px rgba(0,0,0,.18);}
/* Privacy screen */
.pp-sec{font-size:11.5px;font-weight:900;letter-spacing:.09em;color:#B08A2E;margin:18px 20px 8px;text-transform:uppercase;}
.pp-card{background:#fff;border-radius:18px;margin:0 16px;box-shadow:0 3px 14px rgba(30,40,35,.06);overflow:hidden;}
.pp-row{display:flex;align-items:center;gap:12px;padding:13px 16px;}
.pp-row + .pp-row{border-top:1px solid #F5F4EF;}
.pp-ic{font-size:19px;width:26px;text-align:center;flex:none;}
.pp-tx{flex:1;min-width:0;}
.pp-tx b{font-size:14.5px;font-weight:800;display:block;}
.pp-tx span{font-size:12px;color:#9A9A94;font-weight:600;}
.pp-note{margin:14px 20px 0;font-size:12.5px;line-height:1.6;color:#8A8A84;font-weight:600;}
/* Photo viewer */
.phv{position:fixed;inset:0;z-index:200;background:#101312;display:flex;flex-direction:column;}
.phv-head{display:flex;align-items:center;padding:14px 16px;color:#fff;}
.phv-who{flex:1;min-width:0;}
.phv-who b{font-size:15.5px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.phv-who span{font-size:12px;color:#B9BDB9;font-weight:650;}
.phv-x{width:36px;height:36px;border:none;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:16px;cursor:pointer;flex:none;}
.phv-stage{flex:1;display:flex;align-items:center;justify-content:center;padding:10px 22px;}
.phv-photo{position:relative;width:min(78vw,340px);aspect-ratio:1;border-radius:28px;overflow:hidden;background:#1D211F;}
.phv-photo img{width:100%;height:100%;object-fit:cover;display:block;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none;}
.phv-wm{position:absolute;inset:0;display:flex;flex-wrap:wrap;align-content:space-around;justify-content:space-around;transform:rotate(-18deg) scale(1.3);opacity:.16;color:#fff;font-size:13px;font-weight:900;pointer-events:none;}
.phv-chipwrap{text-align:center;}
.phv-chip{display:inline-block;background:rgba(232,179,60,.16);color:#FFD98A;border:1px solid rgba(232,179,60,.45);font-size:12.5px;font-weight:850;border-radius:999px;padding:7px 15px;}
.phv-note{text-align:center;color:#9AA39C;font-size:12px;font-weight:650;padding:12px 30px 26px;line-height:1.6;margin:0;}
/* Fix 82 · banner = full profile-header background (owner) */
.pf2-cover{position:relative;overflow:hidden;border-radius:0 0 24px 24px;padding:24px 12px 16px;}
.pf2-bglayer{position:absolute;inset:0;overflow:hidden;}
.pf2-bglayer.grad{background:linear-gradient(120deg,#F6C453,#E8890C);}
.pf2-bglayer .pfp-bgmedia,.pf2-bglayer .pf2-scene{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.pf2-veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.38),rgba(255,255,255,.74) 62%,rgba(253,251,244,.94));}
.pf2-cover > *:not(.pf2-bglayer){position:relative;z-index:1;}
.pf2-cover .pfp-ava{margin-top:0;}
.pf2-cover .pf2-bgname{z-index:2;}
.me2-hero{isolation:isolate;}
.me2-bannerbg{position:absolute;inset:0;z-index:0;overflow:hidden;}
.me2-veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.38),rgba(255,255,255,.74) 62%,rgba(253,251,244,.94));}
.me2-hero > *:not(.me2-bannerbg):not(.me2-edit):not(.me2-bgball){position:relative;z-index:1;}
/* Fix 83 · Change banner = floating rotating colourful ball (owner) */
.me2-bgball{position:absolute;top:52px;right:12px;z-index:2;background:none;border:none;cursor:pointer;padding:0;display:flex;flex-direction:column;align-items:center;gap:2px;font-family:inherit;}
.bb-disc{position:relative;width:52px;height:52px;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 18px rgba(30,40,35,.30);flex:none;}
.bb-disc::before{content:'';position:absolute;inset:-40%;background:conic-gradient(#F2B33D,#E85D75,#8A5CFF,#2AA08A,#12805F,#F2B33D);animation:bbspin 9s linear infinite;}
.bb-disc::after{content:'';position:absolute;inset:4px;border-radius:50%;background:#fff;}
.bb-ic{position:relative;z-index:1;font-size:20px;}
.bb-tx{font-size:9.5px;font-weight:900;color:#7A4E00;text-shadow:0 1px 0 rgba(255,255,255,.65);letter-spacing:.02em;}
@keyframes bbspin{to{transform:rotate(360deg);}}
/* Fix 85 · two attractive social strips on Me (owner) */
.me2-social{margin:14px 16px 0;background:linear-gradient(120deg,#FFFFFF,#FDF6E3);border:1px solid #F1E7CB;border-bottom:1px solid #F1E7CB;border-radius:16px;box-shadow:0 4px 14px rgba(90,70,10,.07);overflow:hidden;}
.me2-social .me2-half{padding:11px 4px 10px;}
.me2-social .me2-half + .me2-half{border-left:1px solid #F3ECD8;}
.me2-social .me2-half b{color:#0E5E46;font-size:18px;}
.me2-vsocial{display:flex;margin:10px 16px 0;background:linear-gradient(120deg,#EAF6EF,#FDF3D8);border:1px solid #E7DDBE;border-radius:16px;box-shadow:0 4px 14px rgba(90,70,10,.07);overflow:hidden;}
.me2-vhalf{flex:1;display:flex;align-items:center;gap:9px;background:none;border:none;padding:10px 11px;cursor:pointer;font-family:inherit;text-align:left;min-width:0;}
.me2-vhalf + .me2-vhalf{border-left:1px solid rgba(180,150,60,.20);}
.me2-vhalf:active{background:rgba(255,255,255,.45);}
.me2-vic{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;flex:none;box-shadow:0 2px 6px rgba(90,70,10,.15);}
.vic-eye{background:linear-gradient(135deg,#FFE3A3,#FFC44D);}
.vic-clock{background:linear-gradient(135deg,#BDE5D2,#5FBF92);}
.me2-vtx{display:flex;flex-direction:column;line-height:1.3;min-width:0;}
.me2-vtx b{font-size:12.5px;font-weight:900;color:#1D1D1B;white-space:nowrap;}
.me2-vtx i{font-style:normal;font-size:10.5px;color:#8A8A84;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
/* Fix 86 · Mitra — AI Practice Partner */
.sheet-note{font-size:11.5px;color:#A3A099;text-align:center;line-height:1.5;margin-top:10px;}
.mt-card{display:flex;gap:12px;align-items:center;background:linear-gradient(120deg,#EAF7F0,#FFF6DE);border:1.5px solid #BFE3D2;border-radius:18px;padding:13px;margin:10px 14px 4px;cursor:pointer;}
.mt-orb{width:52px;height:52px;border-radius:50%;flex:none;background:conic-gradient(from 210deg,#F2B33D,#E85D75,#8A5CFF,#2AA08A,#12805F,#F2B33D);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(30,60,45,.22);}
.mt-orb i{width:42px;height:42px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;font-style:normal;}
.mt-orb.sm{width:40px;height:40px;}
.mt-orb.sm i{width:32px;height:32px;font-size:17px;}
.mt-card-main{flex:1;min-width:0;}
.mt-card-name{font-size:15.5px;font-weight:900;display:flex;align-items:center;gap:7px;}
.mt-badge{background:#12805F;color:#fff;font-size:9px;font-weight:900;border-radius:999px;padding:2.5px 7px;letter-spacing:.06em;}
.mt-card-sub{font-size:11.5px;color:#12805F;font-weight:800;margin-top:1px;}
.mt-card-prev{font-size:12.5px;color:#6D6A61;margin-top:2px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mt-card-pill{flex:none;background:#0E5E46;color:#fff;font-size:10px;font-weight:900;border-radius:12px;padding:7px 9px;text-align:center;line-height:1.35;}
.mt-view{display:flex;flex-direction:column;height:100%;}
.mt-head{gap:10px;}
.mt-hmain{flex:1;min-width:0;}
.mt-hname{font-size:15px;font-weight:900;display:flex;gap:6px;align-items:center;}
.mt-hsub{font-size:11px;color:#12805F;font-weight:800;margin-top:1px;}
.mt-info{background:#F3EFE2;color:#7A6A35;font-size:11px;font-weight:700;text-align:center;padding:6px 14px;line-height:1.45;}
.mt-msgs{flex:1;overflow-y:auto;padding:14px 14px 6px;display:flex;flex-direction:column;gap:9px;}
.mt-row{display:flex;}
.mt-row.me{justify-content:flex-end;}
.mt-bub{max-width:80%;padding:10px 13px;border-radius:18px;font-size:13.5px;line-height:1.5;}
.mt-bub.ai{background:#fff;border:1px solid #EFEAD9;border-bottom-left-radius:6px;box-shadow:0 2px 8px rgba(30,40,35,.05);}
.mt-bub.me{background:#0E5E46;color:#fff;border-bottom-right-radius:6px;}
.mt-meta{align-self:center;background:#F1EFE6;color:#8A877E;font-size:11px;font-weight:800;border-radius:999px;padding:4px 12px;}
.mt-fix{width:88%;background:linear-gradient(120deg,#FFF8E1,#FFF2C8);border:1px solid #F0DCAE;border-radius:16px;padding:11px 13px;}
.mt-fix h5{font-size:11px;color:#9A6B00;letter-spacing:.05em;margin-bottom:6px;}
.mt-fix .w{color:#B3261E;text-decoration:line-through;font-size:13px;font-weight:700;}
.mt-fix .a{color:#9A6B00;font-weight:900;margin:0 5px;}
.mt-fix .r{color:#0E5E46;font-size:13.5px;font-weight:900;}
.mt-fix p{font-size:12px;color:#6D5C22;margin-top:6px;line-height:1.5;}
.mt-chips{display:flex;gap:7px;padding:8px 12px 2px;overflow-x:auto;scrollbar-width:none;}
.mt-chips::-webkit-scrollbar{display:none;}
.mt-chip{flex:none;background:#fff;border:1.5px solid #E3DECB;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:800;color:#0E5E46;cursor:pointer;font-family:inherit;}
.mt-chip.gold{background:#FFF6DE;border-color:#F0DCAE;color:#9A6B00;}
.mt-count{text-align:center;font-size:11px;font-weight:800;color:#9A6B00;padding:5px 0 1px;}
.mt-bar{display:flex;gap:8px;align-items:center;padding:8px 12px 14px;}
.mt-bar input{flex:1;background:#fff;border:1.5px solid #E7E2D2;border-radius:999px;padding:12px 16px;font-size:13.5px;font-family:inherit;min-width:0;}
.mt-send{width:46px;height:46px;border-radius:50%;background:#0E5E46;color:#fff;font-size:18px;border:none;display:flex;align-items:center;justify-content:center;flex:none;cursor:pointer;}
.mt-tlist{display:flex;flex-direction:column;}
.mt-trow{display:flex;gap:12px;align-items:center;padding:11px 2px;border:none;border-bottom:1px solid #F4F1E6;background:none;cursor:pointer;font-family:inherit;text-align:left;width:100%;}
.mt-tic{width:40px;height:40px;border-radius:13px;flex:none;display:flex;align-items:center;justify-content:center;font-size:19px;background:#F3EFE2;}
.mt-tmain{display:flex;flex-direction:column;}
.mt-tname{font-size:14px;font-weight:800;color:#1D1D1B;}
.mt-tdesc{font-size:11.5px;color:#8A877E;margin-top:1px;}
.mt-segrow{display:flex;gap:8px;margin:4px 0 2px;}
.mt-seg{flex:1;text-align:center;border:1.5px solid #E7E2D2;background:#fff;border-radius:13px;padding:10px 4px;font-size:13px;font-weight:800;color:#55534B;cursor:pointer;font-family:inherit;}
.mt-seg span{display:block;font-size:10.5px;color:#A3A099;font-weight:700;margin-top:2px;}
.mt-seg.on{border-color:#12805F;background:#EAF7F0;color:#0E5E46;}
.mt-lbl{font-size:11px;font-weight:900;color:#9A9A94;letter-spacing:.07em;margin:15px 0 8px;}

/* ============ Fix 90 · Style Studio (Set 14) ============ */
.me2-tile.t-studio{position:relative;background:linear-gradient(140deg,#FFF3D6,#FFE0EA);}
.me2-tile.t-studio::after{content:'NEW';position:absolute;top:9px;right:9px;background:#E85D75;color:#fff;font-size:8.5px;font-weight:900;border-radius:999px;padding:2.5px 7px;letter-spacing:.05em;}
/* Fix 93 · IELTS Prep tile on Me (owner: IELTS belongs in the shop tiles row) */
.me2-tile.t-ielts{position:relative;background:linear-gradient(140deg,#E2F4EA,#FFF0CF);}
.me2-tile.t-ielts::after{content:'NEW';position:absolute;top:9px;right:9px;background:#12805F;color:#fff;font-size:8.5px;font-weight:900;border-radius:999px;padding:2.5px 7px;letter-spacing:.05em;}
/* Fix 94 · Games VR tile beside IELTS Prep on Me; its Settings & support row is removed */
.me2-tile.t-games{position:relative;background:linear-gradient(140deg,#E4E9FF,#F1E6FF);}
.me2-tile.t-games::after{content:'SOON';position:absolute;top:9px;right:9px;background:#6C5CE7;color:#fff;font-size:8.5px;font-weight:900;border-radius:999px;padding:2.5px 7px;letter-spacing:.05em;}
.me2-tile.t-events{position:relative;background:linear-gradient(140deg,#FFE9D2,#FFDFEC);}
.me2-tile.t-events::after{content:'SOON';position:absolute;top:9px;right:9px;background:#E85D75;color:#fff;font-size:8.5px;font-weight:900;border-radius:999px;padding:2.5px 7px;letter-spacing:.05em;}
.st-body{padding:14px 16px 22px;display:flex;flex-direction:column;}
.st-hmain{min-width:0;}
.st-hsub{font-size:11px;color:var(--green);font-weight:800;}
.st-hero{font-size:21px;font-weight:900;line-height:1.3;color:var(--ink);}
.st-hero span{color:var(--green);}
.st-sub{font-size:12.5px;color:var(--ink-soft);margin-top:4px;line-height:1.55;}
.st-type{display:block;width:100%;text-align:left;border:1px solid #EFEAD9;background:#fff;border-radius:20px;overflow:hidden;margin-top:13px;padding:0;cursor:pointer;font-family:inherit;box-shadow:0 8px 22px rgba(31,41,55,.05);}
.st-art{height:104px;position:relative;display:flex;align-items:flex-end;padding:9px 12px;overflow:hidden;}
.st-scene-sunset{background:linear-gradient(160deg,#FFE9B8,#FFB26B 45%,#E88BB0);}
.st-scene-stage{background:linear-gradient(150deg,#2E2A72,#7B5EA7 55%,#E88BB0);}
.st-tag{position:relative;z-index:2;background:rgba(255,255,255,.94);font-size:10px;font-weight:900;border-radius:999px;padding:4px 9px;color:var(--green);}
.st-play{position:absolute;right:12px;top:10px;z-index:2;background:rgba(0,0,0,.45);color:#fff;font-size:10px;font-weight:900;border-radius:999px;padding:4px 9px;}
.st-tcbody{display:flex;align-items:center;gap:10px;padding:11px 13px 13px;background:#fff;}
.st-tcmain{flex:1;min-width:0;display:flex;flex-direction:column;}
.st-tcmain b{font-size:14.5px;color:var(--ink);}
.st-tcsub{font-size:11.5px;color:var(--ink-soft);line-height:1.45;}
.st-from{text-align:right;flex-shrink:0;display:flex;flex-direction:column;}
.st-from b{color:#B45309;font-size:13px;}
.st-from span{font-size:10px;color:var(--ink-soft);}
.st-how{background:#fff;border:1px solid #EFEAD9;border-radius:18px;padding:12px 14px;margin-top:13px;}
.st-how h4{font-size:13.5px;color:var(--ink);margin-bottom:6px;}
.st-step{display:flex;gap:9px;align-items:flex-start;font-size:12.5px;color:#4B5563;line-height:1.5;margin-top:7px;}
.st-n{background:var(--green);color:#fff;font-size:11px;font-weight:900;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.st-bagrow{display:flex;align-items:center;gap:11px;width:100%;background:#FFF9E9;border:1.5px solid #F2D98C;border-radius:16px;padding:12px 14px;margin-top:13px;cursor:pointer;font-family:inherit;text-align:left;}
.st-bagic{font-size:24px;}
.st-bagmain{flex:1;min-width:0;display:flex;flex-direction:column;}
.st-bagmain b{font-size:14.5px;color:var(--ink);}
.st-bagmain span{font-size:11.5px;color:var(--ink-soft);}
.st-chev{font-size:20px;color:#B45309;}
.st-note{font-size:11.5px;color:var(--ink-soft);text-align:center;line-height:1.6;margin:13px 0;}
.st-lbl{font-size:11px;font-weight:900;letter-spacing:.08em;color:#B45309;margin:13px 0 8px;}
.st-chips{display:flex;gap:8px;}
.st-chip{flex:1;padding:11px 6px;border-radius:14px;border:1.5px solid #E7E2D2;background:#fff;font-family:inherit;font-size:12.5px;font-weight:800;color:#6B7280;cursor:pointer;}
.st-chip.on{border-color:var(--green);background:#EAF6F0;color:var(--green);}
.st-upbox{position:relative;height:180px;border-radius:20px;overflow:hidden;background:#F3F0E4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:100%;font-family:inherit;}
.st-upbox.empty{border:2px dashed #D8D2BC;cursor:pointer;color:var(--ink-soft);font-size:12px;}
.st-upbox.empty b{font-size:14px;color:var(--ink);}
.st-upic{font-size:30px;}
.st-upmedia{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.st-upveil{position:absolute;inset:0;background:rgba(255,255,255,.55);display:flex;align-items:center;justify-content:center;font-weight:900;color:var(--ink);font-size:14px;z-index:2;}
.st-chg{position:absolute;right:11px;bottom:11px;z-index:3;background:#fff;border:none;border-radius:999px;padding:7px 13px;font-weight:800;font-size:12px;cursor:pointer;font-family:inherit;box-shadow:0 4px 12px rgba(0,0,0,.2);color:var(--ink);}
.st-rules{font-size:11.5px;color:var(--ink-soft);line-height:1.6;margin-top:10px;}
.st-mock{border-radius:20px;overflow:hidden;border:1px solid #EFEAD9;background:#fff;}
.st-mockart{height:120px;position:relative;background:#F3F0E4;}
.st-mockmedia{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.st-mockcap{position:absolute;left:11px;bottom:10px;background:rgba(0,0,0,.45);color:#fff;font-size:11px;font-weight:800;border-radius:999px;padding:5px 10px;}
.st-mockrow{display:flex;gap:10px;align-items:center;padding:10px 13px;}
.st-mockava{width:38px;height:38px;border-radius:50%;background:linear-gradient(140deg,#FFB26B,#E88BB0);color:#fff;font-weight:900;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}
.st-mockrow b{font-size:14px;color:var(--ink);display:block;}
.st-mocksub{font-size:11px;color:var(--ink-soft);}
.st-durs{display:flex;gap:9px;}
.st-dur{flex:1;position:relative;background:#fff;border:1.5px solid #E7E2D2;border-radius:16px;padding:14px 5px 11px;font-family:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;}
.st-dur.on{border-color:var(--green);background:#EAF6F0;}
.st-dur b{font-size:14px;color:var(--ink);}
.st-durp{color:#B45309;font-weight:900;font-size:13px;}
.st-dur small{color:var(--ink-soft);font-size:10px;}
.st-pop{position:absolute;top:-9px;left:50%;transform:translateX(-50%);background:#E85D75;color:#fff;font-size:8.5px;font-weight:900;border-radius:999px;padding:2.5px 8px;white-space:nowrap;letter-spacing:.04em;}
.st-name{width:100%;padding:12px 14px;border:1.5px solid #E7E2D2;border-radius:14px;font-size:14px;font-family:inherit;color:var(--ink);background:#fff;}
.st-sum{background:#fff;border:1px solid #EFEAD9;border-radius:16px;padding:12px 14px;margin-top:14px;}
.st-sr{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--ink-soft);padding:4px 0;}
.st-sr b{color:var(--ink);text-align:right;}
.st-sr.tot{border-top:1px dashed #E7E2D2;margin-top:5px;padding-top:9px;}
.st-payamt{color:#B45309 !important;font-size:14px;}
.st-safe{background:#EAF6F0;border-radius:14px;padding:11px 13px;font-size:12.5px;line-height:1.55;color:#14532D;margin-top:13px;}
.st-item{border-radius:20px;overflow:hidden;border:1px solid #EFEAD9;background:#fff;margin-bottom:13px;box-shadow:0 8px 22px rgba(31,41,55,.05);}
.st-itemart{height:128px;position:relative;background:#F3F0E4;display:flex;align-items:flex-end;padding:9px 12px;overflow:hidden;}
.st-itemmedia{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.st-itemb{padding:11px 13px 13px;}
.st-itemtop{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.st-itemtop b{font-size:14.5px;color:var(--ink);}
.st-st{font-size:9.5px;font-weight:900;border-radius:999px;padding:4px 8px;white-space:nowrap;}
.st-st.rev{background:#FEF3C7;color:#92400E;}
.st-st.ok{background:#DCFCE7;color:#166534;}
.st-st.no{background:#FEE2E2;color:#991B1B;}
.st-st.exp{background:#E5E7EB;color:#4B5563;}
.st-itemmeta{font-size:12px;color:var(--ink-soft);line-height:1.55;margin-top:3px;}
.st-refund{color:#166534;}
.st-acts{display:flex;gap:9px;margin-top:10px;}
.st-mbtn{flex:1;padding:11px;border-radius:13px;font-size:13px;font-weight:900;font-family:inherit;text-align:center;border:none;cursor:pointer;}
.st-mbtn.gold{background:linear-gradient(135deg,#F5B73D,#E8930C);color:#fff;}
.st-mbtn.ghost{background:#fff;border:1.5px solid #E7E2D2;color:var(--ink);cursor:pointer;}
.st-mbtn.dis{background:#F3F4F6;color:#9CA3AF;cursor:default;display:flex;align-items:center;justify-content:center;}

/* ==== Fix 92 · IELTS Prep (Set 15) ==== */
.ix-card{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:0;cursor:pointer;
  background:linear-gradient(120deg,#0c5a38,#12805a 55%,#c9962e);color:#fff;border-radius:18px;
  padding:14px 16px;margin:0 0 10px;box-shadow:0 8px 20px rgba(12,90,56,.25)}
.ix-card-ic{font-size:30px;line-height:1}
.ix-card-main{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.ix-card-main b{font-size:17px}
.ix-card-main small{opacity:.88;font-size:12px}
.ix-pill{background:#ffd968;color:#5b4300;font-weight:800;font-size:12px;padding:6px 10px;border-radius:999px;white-space:nowrap}
.ix-pill.pro{background:#fff;color:#0c5a38}
.ix-view{padding:4px 2px 28px}
.ix-plan{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff;border:1px solid #e8e2d2;
  border-radius:16px;padding:12px 14px;margin:10px 0;box-shadow:0 3px 10px rgba(60,50,10,.05)}
.ix-plan b{font-size:15px}
.ix-plan small{display:block;color:#8a8378;font-size:12px;margin-top:1px}
.ix-plan.pro{background:linear-gradient(120deg,#0c5a38,#12805a);color:#fff;border:0}
.ix-plan.pro small{color:#cfe8d8}
.ix-plan-amt{font-weight:800;font-size:13px;white-space:nowrap}
.ix-upgrade{background:linear-gradient(120deg,#d9a441,#b57f1e);color:#fff;border:0;border-radius:999px;
  padding:9px 14px;font-weight:800;font-size:13px;cursor:pointer;white-space:nowrap}
.ix-prog{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0 4px}
.ix-pstat{background:#fff;border:1px solid #eee7d5;border-radius:14px;padding:9px 4px;text-align:center}
.ix-pstat b{display:block;font-size:17px;color:#0c5a38}
.ix-pstat span{font-size:11px;color:#8a8378}
.ix-capsline{background:#fdf6e0;border:1px solid #f0e3b2;color:#7a6210;border-radius:12px;padding:9px 12px;font-size:13px;margin:8px 0}
.ix-sec{font-weight:800;font-size:15px;margin:16px 0 8px;color:#2c2a24}
.ix-free{background:#12805a;color:#fff;font-size:10px;padding:2px 7px;border-radius:999px;vertical-align:2px;margin-left:4px}
.ix-daily{display:flex;flex-direction:column;gap:8px}
.ix-dcard{background:#fff;border:1px solid #eee7d5;border-radius:16px;padding:12px 14px}
.ix-dlab{font-size:11px;font-weight:800;color:#12805a;letter-spacing:.4px;text-transform:uppercase}
.ix-dcard b{display:block;font-size:19px;margin:3px 30px 0 0}
.ix-bandtag{background:#fdf0cd;color:#8a6210;font-size:10px;font-weight:800;padding:2px 7px;border-radius:999px;float:right}
.ix-dcard p{margin:3px 0;color:#57534a;font-size:13px}
.ix-dcard em{color:#8a8378;font-size:12px}
.ix-mini{background:#eef7f1;color:#0c5a38;border:1px solid #cfe8d8;border-radius:999px;padding:6px 12px;font-weight:700;font-size:12px;cursor:pointer;margin-top:8px}
.ix-drow{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:#fff;border:1px solid #eee7d5;
  border-radius:16px;padding:12px 14px;cursor:pointer}
.ix-drow span:first-child{font-size:12px;font-weight:800;color:#12805a;white-space:nowrap}
.ix-drow b{flex:1;font-size:13.5px;min-width:0}
.ix-go{color:#b57f1e;font-weight:800;font-size:12px;white-space:nowrap}
.ix-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ix-tile{background:#fff;border:1px solid #eee7d5;border-radius:18px;padding:14px 12px;text-align:left;cursor:pointer;
  box-shadow:0 3px 10px rgba(60,50,10,.05);display:flex;flex-direction:column;gap:3px}
.ix-tic{font-size:24px}
.ix-tile b{font-size:14.5px}
.ix-tile small{color:#8a8378;font-size:11.5px;line-height:1.35}
.ix-lock{color:#b57f1e;font-weight:800}
.ix-tagrow{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #eee7d5;border-radius:16px;padding:12px 14px;margin-top:14px}
.ix-tagtx{flex:1}
.ix-tagtx b{font-size:14.5px}
.ix-tagtx small{display:block;color:#8a8378;font-size:12px;margin-top:2px;line-height:1.4}
.ix-switch{border:0;border-radius:999px;padding:8px 16px;font-weight:800;font-size:13px;background:#e8e4da;color:#6b675e;cursor:pointer;min-width:64px}
.ix-switch.on{background:#12805a;color:#fff}
.ix-subcard{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:0;cursor:pointer;margin-top:14px;
  background:linear-gradient(120deg,#0c5a38,#12805a 55%,#c9962e);color:#fff;border-radius:18px;padding:14px 16px}
.ix-note{color:#8a8378;font-size:12px;text-align:center;margin:10px 0}
.ixsub-price{font-size:26px;font-weight:900;color:#0c5a38;text-align:center;margin:6px 0 10px}
.ixsub-price span{font-size:14px;color:#8a8378;font-weight:600}
.ixsub-list{display:flex;flex-direction:column;gap:7px;background:#f7f9f5;border-radius:14px;padding:12px 14px;font-size:13.5px;margin-bottom:10px}
.ixsub-fair{background:#fdf6e0;border:1px solid #f0e3b2;color:#7a6210;border-radius:12px;padding:9px 12px;font-size:12.5px;margin-bottom:10px;line-height:1.45}
.ixsub-bal{text-align:center;font-size:14px;margin-bottom:12px}
.ixsub-cancel{background:#fff!important;color:#57534a!important;border:1px solid #e3ded2!important;margin-top:8px}
.ix-mchips{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.ix-mockintro{text-align:center;padding:18px 8px}
.ix-examava{font-size:52px}
.ix-mockintro h3{margin:8px 0 6px}
.ix-mockintro p{color:#57534a;font-size:14px;line-height:1.55}
.ix-mockbar{display:flex;align-items:center;justify-content:space-between;background:#f7f9f5;border-radius:12px;padding:8px 12px;font-size:13px;margin:10px 0;font-weight:700}
.ix-endtest{background:#fff;border:1px solid #e0b4b4;color:#b03a3a;border-radius:999px;padding:5px 12px;font-weight:800;font-size:12px;cursor:pointer}
.ix-donetag{color:#12805a}
.ix-msgs{display:flex;flex-direction:column;gap:10px;padding:6px 0 12px}
.ix-bubrow{display:flex;gap:8px;align-items:flex-end}
.ix-bubrow.me{justify-content:flex-end}
.ix-bubava{font-size:22px}
.ix-bub{max-width:80%;border-radius:18px;padding:10px 13px;font-size:14.5px;line-height:1.5;white-space:pre-wrap;word-wrap:break-word}
.ix-bub.ex{background:#fff;border:1px solid #e8e2d2;border-bottom-left-radius:6px}
.ix-bub.me{background:linear-gradient(120deg,#12805a,#0c5a38);color:#fff;border-bottom-right-radius:6px}
.ix-composer{display:flex;gap:8px;align-items:center;background:#fff;border:1px solid #e8e2d2;border-radius:999px;padding:5px 5px 5px 14px;box-shadow:0 4px 14px rgba(60,50,10,.07)}
.ix-input{flex:1;border:0;outline:0;font-size:14.5px;background:transparent;min-width:0}
.ix-send{background:linear-gradient(120deg,#d9a441,#b57f1e);color:#fff;border:0;width:40px;height:40px;border-radius:50%;font-size:16px;cursor:pointer;flex-shrink:0}
.ix-result-btn{margin-top:4px}
.ix-bandcard{background:linear-gradient(135deg,#0c5a38,#12805a 60%,#c9962e);color:#fff;border-radius:20px;padding:18px;text-align:center;margin:12px 0;box-shadow:0 10px 24px rgba(12,90,56,.28)}
.ix-bandlab{font-size:12px;font-weight:800;letter-spacing:1px;text-transform:uppercase;opacity:.85}
.ix-band{display:block;font-size:52px;font-weight:900;line-height:1.05}
.ix-bandcard p{margin:4px 0 0;font-size:13.5px;opacity:.95;line-height:1.5}
.ix-rrow{display:flex;gap:12px;background:#fff;border:1px solid #eee7d5;border-radius:16px;padding:12px 14px;margin-bottom:8px}
.ix-ric{font-size:22px}
.ix-rtx b{font-size:14.5px}
.ix-rtx p{margin:2px 0 0;color:#57534a;font-size:13px;line-height:1.5}
.ix-fixes{display:flex;flex-direction:column;gap:8px}
.ix-fix{display:flex;gap:10px;background:#fdf6e0;border:1px solid #f0e3b2;border-radius:14px;padding:10px 12px;font-size:13.5px;align-items:flex-start}
.ix-fix b{background:#c9962e;color:#fff;width:22px;height:22px;border-radius:50%;text-align:center;line-height:22px;flex-shrink:0;font-size:12px}
.ix-ghost{background:#fff!important;color:#0c5a38!important;border:1px solid #cfe8d8!important;margin-top:8px}
.ix-prompt{background:#fff;border:1px solid #eee7d5;border-left:5px solid #c9962e;border-radius:14px;padding:12px 14px;margin:10px 0}
.ix-prompt span{font-size:11px;font-weight:800;color:#b57f1e;text-transform:uppercase;letter-spacing:.4px}
.ix-prompt p{margin:4px 0 0;font-size:14.5px;line-height:1.55}
.ix-essay{width:100%;border:1px solid #e8e2d2;border-radius:14px;padding:12px;font-size:14.5px;line-height:1.55;font-family:inherit;resize:vertical;box-sizing:border-box;background:#fff}
.ix-wc{display:flex;justify-content:space-between;color:#8a8378;font-size:12px;margin:6px 2px 12px}
.ix-histrow{display:flex;justify-content:space-between;background:#fff;border:1px solid #eee7d5;border-radius:12px;padding:10px 12px;margin-bottom:6px;font-size:13.5px}
.ix-corrected{background:#fff;border:1px solid #eee7d5;border-radius:16px;padding:14px;font-size:14.5px;line-height:1.75}
.ix-wrong{color:#c0392b;text-decoration-color:#c0392b}
.ix-fix-t{color:#12805a}
.ix-mistake{background:#fff;border:1px solid #eee7d5;border-radius:14px;padding:11px 13px;margin-bottom:8px}
.ix-mrow{display:flex;gap:8px;align-items:center;font-size:14px;flex-wrap:wrap}
.ix-mrow s{color:#c0392b}
.ix-mrow b{color:#12805a}
.ix-mistake p{margin:4px 0 0;color:#8a8378;font-size:12.5px}
.ix-topics{display:flex;flex-direction:column;gap:8px}
.ix-topic{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:#fff;border:1px solid #eee7d5;border-radius:16px;padding:12px 14px;cursor:pointer}
.ix-ttx{flex:1;min-width:0}
.ix-ttx b{display:block;font-size:14.5px}
.ix-ttx small{color:#8a8378;font-size:12px}
.ix-tprog{font-size:12px;font-weight:800;color:#12805a;white-space:nowrap}
.ix-words{display:flex;flex-direction:column;gap:8px}
.ix-word{background:#fff;border:1px solid #eee7d5;border-radius:16px;padding:11px 13px}
.ix-word.learned{border-color:#bfe3cf;background:#f4fbf6}
.ix-wrow{display:flex;align-items:center;gap:8px}
.ix-wrow b{font-size:16px;flex:1;min-width:0}
.ix-wrow .ix-bandtag{float:none}
.ix-learnbtn{background:#eef7f1;border:1px solid #cfe8d8;color:#0c5a38;border-radius:999px;padding:5px 11px;font-size:12px;font-weight:800;cursor:pointer;white-space:nowrap}
.ix-word.learned .ix-learnbtn{background:#12805a;color:#fff;border-color:#12805a}
.ix-word p{margin:3px 0;color:#57534a;font-size:13px}
.ix-word em{color:#8a8378;font-size:12px}
.ix-cuecard{background:linear-gradient(150deg,#fffdf4,#fdf6e0);border:1px solid #f0e3b2;border-radius:20px;padding:16px;margin:10px 0;box-shadow:0 6px 16px rgba(120,95,10,.08)}
.ix-cuecat{font-size:11px;font-weight:800;color:#b57f1e;text-transform:uppercase;letter-spacing:.5px}
.ix-cuecard h3{margin:6px 0 10px;font-size:18px;line-height:1.4}
.ix-cuepts{background:#fff;border-radius:12px;padding:10px 12px;font-size:13.5px;line-height:1.6}
.ix-cuepts span{font-weight:800;color:#57534a}
.ix-cuewords{margin-top:10px;font-size:13px;color:#57534a}
.ix-timers{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}
.ix-timerbox{background:#fff;border:1px solid #eee7d5;border-radius:16px;padding:12px;text-align:center}
.ix-timerbox span{font-size:12px;font-weight:800;color:#8a8378}
.ix-timerbox b{display:block;font-size:26px;margin:2px 0}
.ix-timerbox .ix-mini{margin-top:2px}
.ix-cuenav{display:flex;gap:10px;margin-top:6px}
.ix-navbtn{flex:1}
.ix-dictcard{background:#fff;border:1px solid #eee7d5;border-radius:18px;padding:14px;margin:10px 0}
.ix-play{display:block;width:100%;background:linear-gradient(120deg,#12805a,#0c5a38);color:#fff;border:0;border-radius:14px;padding:13px;font-size:16px;font-weight:800;cursor:pointer;margin:10px 0 8px}
.ix-dictbtns{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.ix-dictbtns .ix-mini{margin-top:0}
.ix-plays{color:#8a8378;font-size:12px}
.ix-dscore{margin-top:12px}
.ix-dbar{background:#f0ead8;border-radius:999px;height:10px;overflow:hidden;margin-bottom:6px}
.ix-dbar span{display:block;height:100%;background:linear-gradient(90deg,#12805a,#c9962e)}
.ix-dtyped{font-size:14px;line-height:1.7}
.ix-dok{color:#2c2a24}
.ix-dbad{color:#c0392b;font-weight:800;text-decoration:underline}
.ix-dcorr{color:#57534a;font-size:13.5px;line-height:1.55}
.ix-essaybody{background:#fff;border:1px solid #eee7d5;border-radius:16px;padding:16px;font-size:15px;line-height:1.8}
.ix-essaybody p{margin:0 0 12px}
.pf2-ielts{display:inline-block;background:rgba(255,217,104,.92);color:#5b4300;font-weight:800;font-size:11.5px;padding:4px 10px;border-radius:999px;margin-top:6px}
.pt-tag.ielts{background:#fdf0cd;color:#8a6210}
.ep-ielts{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:#f7f9f5;border:1px solid #e3ead9;border-radius:14px;padding:12px 14px;margin-top:14px;cursor:pointer}
.ep-ielts b{font-size:14px;display:block}
.ep-ielts small{color:#8a8378;font-size:12px}
.ep-ielts .ix-switch{margin-left:auto}

/* ---- Fix 96 · Setu — AI Language Exchange ---- */
.su-orb{background:conic-gradient(from 210deg,#2AA08A,#12805F,#F2B33D,#8FE3C0,#2AA08A);}
.su-badge{background:#5B3DF0;}
.su-card{background:linear-gradient(120deg,#F0EBFF,#EAF7F0);border-color:#CFC4F5;}
.su-view .su-body{padding:6px 16px 26px;}
.su-pair{display:flex;align-items:stretch;gap:9px;}
.su-langpick{flex:1;display:flex;align-items:center;gap:9px;background:#fff;border:1.5px solid #E7E2D2;border-radius:14px;padding:10px 12px;text-align:left;cursor:pointer;}
.su-lp-code{font-weight:900;font-size:12px;color:#0E5E46;background:#EAF7F0;border-radius:8px;padding:5px 7px;flex:none;}
.su-lp-main{font-weight:900;font-size:14.5px;line-height:1.15;}
.su-lp-main small{display:block;font-size:9.5px;color:#a3a099;font-weight:800;letter-spacing:.05em;margin-top:2px;}
.su-swap{width:42px;height:42px;border-radius:50%;border:none;background:linear-gradient(135deg,#F2B33D,#D98A06);color:#fff;font-size:18px;font-weight:900;align-self:center;flex:none;cursor:pointer;box-shadow:0 5px 12px rgba(217,164,65,.35);}
.su-inbox{background:#fff;border:1.5px solid #E7E2D2;border-radius:17px;padding:12px 13px;margin-top:12px;}
.su-inbox textarea{width:100%;border:none;outline:none;resize:none;font:inherit;font-size:16.5px;line-height:1.55;background:transparent;color:#1D1D1B;}
.su-inmeta{display:flex;justify-content:space-between;font-size:11px;color:#a3a099;font-weight:700;margin-top:6px;}
#su-go{margin-top:12px;}
#su-go[disabled]{opacity:.65;}
.su-res{background:linear-gradient(160deg,#F2FBF6,#FFF8E6);border:1.5px solid #BFE6CF;border-radius:17px;padding:14px;margin-top:14px;}
.su-res-lab{font-size:10.5px;font-weight:900;letter-spacing:.06em;color:#0E5E46;}
.su-res-big{font-size:18.5px;font-weight:800;line-height:1.5;margin-top:5px;}
.su-res-btns{display:flex;gap:8px;margin-top:11px;flex-wrap:wrap;}
.su-mini{font-size:12px;font-weight:900;border-radius:999px;padding:7px 13px;background:#fff;border:1.5px solid #E7E2D2;color:#3c3a33;cursor:pointer;}
.su-mini.gold{background:linear-gradient(135deg,#F2B33D,#D98A06);color:#fff;border:none;}
.su-wbw{margin-top:12px;border-top:1px dashed #D8D2BE;padding-top:9px;}
.su-w{display:flex;gap:8px;font-size:13.5px;padding:3.5px 0;}
.su-w b{min-width:96px;color:#0E5E46;}
.su-w span{color:#55534b;}
.su-simple{margin-top:10px;background:#fff;border:1px dashed #F0DCAE;border-radius:12px;padding:9px 11px;font-size:13.5px;line-height:1.5;}
.su-simple b{color:#B08A1E;font-size:10.5px;display:block;letter-spacing:.05em;margin-bottom:2px;}
.su-hists{display:flex;flex-direction:column;gap:9px;}
.su-hist{display:flex;gap:10px;align-items:center;background:#fff;border:1px solid #F1EEE3;border-radius:14px;padding:11px 13px;text-align:left;cursor:pointer;width:100%;}
.su-hist-main{flex:1;min-width:0;}
.su-hist-main b{font-size:13.5px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.su-hist-main span{font-size:12px;color:#8a877e;display:block;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.su-hist-arr{color:#c9c4b2;font-size:17px;flex:none;}
.ch-tr{margin-top:7px;border-top:1px dashed rgba(0,0,0,.14);padding-top:6px;cursor:pointer;}
.ch-tr-lab{font-size:9.5px;font-weight:900;letter-spacing:.05em;color:#5B3DF0;}
.ch-tr-tx{font-size:13.5px;margin-top:2px;line-height:1.45;}
.ch-bub.me .ch-tr{border-top-color:rgba(255,255,255,.35);}
.ch-bub.me .ch-tr-lab{color:#FFE9A8;}
.ch-bub.anim .ch-tr{border-top-color:rgba(255,255,255,.35);}
.ch-bub.anim .ch-tr-lab{color:#FFE9A8;}
.ch-trbar{margin:0 10px 8px;background:#F7F4FF;border:1.5px solid #C9BFF5;border-radius:15px;padding:10px 12px;}
.ch-trbar-lab{font-size:10px;font-weight:900;letter-spacing:.05em;color:#5B3DF0;}
.ch-trbar-tx{font-size:14.5px;font-weight:700;margin-top:3px;line-height:1.45;}
.ch-trbar-btns{display:flex;gap:8px;margin-top:9px;flex-wrap:wrap;}
.su-view .sect-h{margin:16px 2px 9px;font-size:12px;font-weight:900;letter-spacing:.07em;color:#B08A1E;}

/* ===== Fix 101 · Games VR — party stage (Set 19) ===== */
.gvr-stage { background:linear-gradient(165deg,#06231C,#0B4A38 55%,#0E5E46); color:#fff; min-height:100%; display:flex; flex-direction:column; }
.gvr-shead { display:flex; align-items:center; gap:10px; padding:14px 16px 4px; }
.gvr-back { width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,.12); border:none; color:#fff; display:flex; align-items:center; justify-content:center; font-size:19px; cursor:pointer; flex:none; }
.gvr-stitle { font-size:19px; font-weight:900; }
.gvr-ssub { font-size:11.5px; color:rgba(255,255,255,.72); margin-top:1px; }
.gvr-coin { margin-left:auto; background:rgba(255,201,60,.16); border:1px solid rgba(255,201,60,.5); color:#FFD968; border-radius:999px; padding:6px 11px; font-weight:900; font-size:12px; flex:none; }
.gvr-sbody { padding:12px 16px 20px; display:flex; flex-direction:column; }
.gvr-loading { padding:44px 20px; text-align:center; color:rgba(255,255,255,.75); }
.gvr-empty { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:14px; padding:16px 14px; text-align:center; font-size:13px; line-height:1.6; color:rgba(255,255,255,.85); margin-top:10px; }
.gvr-create-cta { background:linear-gradient(120deg,#FFC93C,#F2A93B); color:#4A3200; border:none; border-radius:16px; padding:14px; text-align:center; font-weight:900; font-size:15px; box-shadow:0 10px 24px rgba(242,169,59,.35); cursor:pointer; width:100%; }
.gvr-create-cta:disabled { opacity:.5; box-shadow:none; }
.gvr-return { background:rgba(255,201,60,.16); border:1.5px solid rgba(255,201,60,.55); color:#FFD968; font-weight:900; font-size:13.5px; border-radius:13px; padding:12px; margin-top:11px; cursor:pointer; width:100%; }
.gvr-gcard { margin-top:12px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14); border-radius:20px; padding:14px; display:flex; gap:13px; align-items:center; text-align:left; }
.gvr-gcard.off { opacity:.75; }
.gvr-gcard b { font-size:16.5px; display:block; color:#fff; }
.gvr-gcard span:not(.gvr-play):not(.gvr-new) { font-size:11.5px; color:rgba(255,255,255,.72); line-height:1.5; display:block; margin-top:2px; }
.gvr-gic { width:58px; height:58px; border-radius:17px; display:flex; align-items:center; justify-content:center; font-size:29px; flex:none; box-shadow:inset 0 -6px 12px rgba(0,0,0,.18), 0 6px 14px rgba(0,0,0,.25); }
.gvr-play { margin-left:auto; background:#12805F; border:1.5px solid rgba(255,255,255,.35); color:#fff; font-weight:900; font-size:12px; border-radius:999px; padding:8px 13px; flex:none; }
.gvr-play.soon { background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.2); color:rgba(255,255,255,.75); }
.gvr-new { background:#FF5A76; color:#fff; font-size:9px; font-weight:900; border-radius:6px; padding:2.5px 6px; vertical-align:2px; margin-left:6px; display:inline-block; }
.gvr-secth { margin:16px 0 2px; font-size:11px; font-weight:900; letter-spacing:1px; color:rgba(255,255,255,.6); }
.gvr-roomrow { display:flex; align-items:center; gap:11px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:15px; padding:11px 12px; margin-top:9px; }
.gvr-ric { font-size:19px; }
.gvr-rinfo { flex:1; min-width:0; } .gvr-rinfo b { display:block; font-size:14.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:#fff; }
.gvr-rinfo span { font-size:11.5px; color:rgba(255,255,255,.65); }
.gvr-join { flex:none; background:#FFC93C; color:#4A3200; border:none; border-radius:999px; padding:9px 14px; font-weight:900; font-size:12.5px; cursor:pointer; }
.gvr-disc { margin-top:14px; font-size:10.5px; color:rgba(255,255,255,.66); line-height:1.6; background:rgba(0,0,0,.18); border-radius:12px; padding:10px 12px; }
.gvr-fld { margin-top:14px; }
.gvr-fld label { display:block; font-size:11px; font-weight:900; letter-spacing:.8px; color:rgba(255,255,255,.6); margin-bottom:8px; }
.gvr-inp { width:100%; border:1.5px solid rgba(255,255,255,.25); border-radius:13px; padding:12px 14px; font-size:15px; background:rgba(255,255,255,.08); color:#fff; }
.gvr-inp::placeholder { color:rgba(255,255,255,.45); }
.gvr-chips { display:flex; gap:7px; flex-wrap:wrap; }
.gvr-chip { background:rgba(255,255,255,.09); border:1.5px solid rgba(255,255,255,.18); color:#fff; border-radius:999px; padding:9px 13px; font-weight:800; font-size:12.5px; cursor:pointer; }
.gvr-chip.on { background:#FFC93C; color:#4A3200; border-color:#FFC93C; }
.gvr-notebox { background:rgba(0,0,0,.22); border-radius:13px; padding:12px 13px; font-size:13px; line-height:1.7; }
.gvr-note { font-size:12px; color:rgba(255,255,255,.7); line-height:1.55; margin-top:10px; }
.gvr-waiting { text-align:center; font-weight:800; color:rgba(255,255,255,.75); padding:13px; }
/* lobby seats */
.gvr-stagegrid { display:grid; gap:10px; }
.gvr-seat { position:relative; display:flex; flex-direction:column; align-items:center; gap:3px; background:rgba(255,255,255,.05); border-radius:16px; padding:12px 4px 10px; }
.gvr-seat .gvr-sava { width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:900; font-size:19px; color:#fff; overflow:hidden; }
.gvr-seat .gvr-sava img { width:100%; height:100%; object-fit:cover; }
.gvr-seat b { font-size:13px; color:#fff; } .gvr-seat span { font-size:10.5px; color:rgba(255,255,255,.6); }
.gvr-seat.me { background:rgba(255,201,60,.1); } .gvr-seat.me .gvr-sava { box-shadow:0 0 0 3px #F2C94C; }
.gvr-seat.empty { opacity:.55; } .gvr-seat.empty .gvr-sava { background:rgba(255,255,255,.14); color:rgba(255,255,255,.6); }
.gvr-micst { position:absolute; top:6px; right:8px; font-size:12px; }
.gvr-hosttag { position:absolute; top:4px; left:8px; font-size:12px; }
/* room bar + chat */
.gvr-bar { display:flex; gap:8px; }
.gvr-rbtn { flex:1; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); border-radius:13px; padding:9px 4px; font-size:12px; font-weight:800; color:#fff; cursor:pointer; display:flex; flex-direction:column; align-items:center; gap:2px; }
.gvr-rbtn .ri { font-size:17px; }
.gvr-rbtn.leave { background:rgba(217,43,31,.22); border-color:rgba(255,120,110,.45); }
.gvr-chat { margin-top:13px; background:rgba(0,0,0,.22); border-radius:15px; padding:10px 12px; }
.gvr-chat-msgs { max-height:110px; overflow-y:auto; font-size:13px; line-height:1.55; color:#fff; }
.gvr-msg b { color:#7ED957; } .gvr-chat-empty { color:rgba(255,255,255,.5); font-size:12.5px; }
.gvr-chat-row { display:flex; gap:8px; margin-top:9px; }
.gvr-chat-row input { flex:1; border:1.5px solid rgba(255,255,255,.22); border-radius:999px; padding:9px 13px; font-size:13.5px; min-width:0; background:rgba(255,255,255,.08); color:#fff; }
.gvr-send { background:#12805F; color:#fff; border:none; border-radius:999px; padding:9px 16px; font-weight:900; cursor:pointer; }
/* tambola */
.gvr-gtop { display:flex; align-items:center; gap:10px; padding:14px 16px 0; }
.gvr-gpill { background:rgba(255,255,255,.12); border-radius:999px; padding:6px 12px; font-size:11.5px; font-weight:900; }
.gvr-gpill.gold { margin-left:auto; background:rgba(255,201,60,.18); color:#FFD968; }
.tb-stage { display:flex; align-items:center; gap:13px; margin:14px 16px 0; background:rgba(0,0,0,.22); border-radius:19px; padding:14px; }
.tb-ball { width:84px; height:84px; border-radius:50%; background:radial-gradient(circle at 32% 28%, #FFF3C4, #FFC93C 55%, #D98A06); color:#5B4300; display:flex; align-items:center; justify-content:center; font-size:37px; font-weight:900; box-shadow:0 12px 24px rgba(0,0,0,.35), inset 0 -8px 14px rgba(146,96,0,.45); flex:none; }
.tb-ball.pop { animation:tbpop .45s ease; }
@keyframes tbpop { 0% { transform:scale(.55); } 60% { transform:scale(1.14); } 100% { transform:scale(1); } }
.tb-inf b { font-size:15px; display:block; } .tb-inf span { font-size:11.5px; color:rgba(255,255,255,.72); line-height:1.5; display:block; margin-top:2px; }
.tb-recent { display:flex; gap:6px; margin-top:9px; }
.tb-mini { width:29px; height:29px; border-radius:50%; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.25); display:flex; align-items:center; justify-content:center; font-size:11.5px; font-weight:900; }
.tb-mini.last { background:#FFC93C; color:#5B4300; border-color:#FFC93C; }
.gvr-drawbtn { margin:12px 16px 0; width:calc(100% - 32px); background:linear-gradient(120deg,#FFC93C,#F2A93B); color:#4A3200; border:none; border-radius:14px; padding:13px; font-weight:900; font-size:14.5px; cursor:pointer; box-shadow:0 10px 22px rgba(242,169,59,.3); }
.tb-label { margin:15px 16px 0; font-size:11px; font-weight:900; letter-spacing:1px; color:rgba(255,255,255,.6); display:flex; justify-content:space-between; }
.tb-ticket { margin:8px 16px 0; background:linear-gradient(160deg,#FFFFFF,#F7F1DE); border-radius:15px; padding:10px; box-shadow:0 14px 28px rgba(0,0,0,.3); }
.tb-row { display:grid; grid-template-columns:repeat(9,minmax(0,1fr)); gap:4px; margin-bottom:4px; } .tb-row:last-child { margin-bottom:0; }
.tb-cell { aspect-ratio:1.15; border-radius:7px; background:#F1EDDF; color:#22312A; display:flex; align-items:center; justify-content:center; font-weight:900; font-size:13.5px; }
.tb-cell.blank { background:transparent; border:1.5px dashed #DCD5BE; }
.tb-cell.can { background:#FFF3C4; box-shadow:inset 0 0 0 2px #F2C94C; cursor:pointer; animation:tbpulse 1.2s ease infinite; }
@keyframes tbpulse { 0%,100% { transform:scale(1); } 50% { transform:scale(1.07); } }
.tb-cell.hit { background:linear-gradient(150deg,#FFD968,#F2A93B); color:#5B4300; box-shadow:inset 0 0 0 2px #FFF3C4; }
.tb-claims { display:grid; grid-template-columns:1fr 1fr; gap:9px; padding:13px 16px 0; }
.tb-claim { background:rgba(255,255,255,.09); border:1.5px solid rgba(255,255,255,.16); border-radius:13px; padding:11px 10px; font-size:12px; font-weight:800; text-align:center; color:#fff; font-family:inherit; }
.tb-claim small { display:block; font-size:10px; color:rgba(255,255,255,.6); font-weight:600; margin-top:2px; }
.tb-claim:disabled { opacity:.85; }
.tb-claim.ready { background:linear-gradient(140deg,#1FA36B,#12805F); border-color:#7ED957; box-shadow:0 8px 18px rgba(18,128,95,.45); cursor:pointer; opacity:1; }
.tb-claim.won { background:rgba(255,201,60,.16); border-color:rgba(255,201,60,.55); color:#FFD968; opacity:1; }
.tb-players { display:flex; gap:7px; padding:13px 16px 0; flex-wrap:wrap; }
.tb-pl { background:rgba(0,0,0,.22); border-radius:999px; padding:6px 11px 6px 7px; font-size:11px; font-weight:800; display:flex; align-items:center; gap:6px; }
.tb-pl .av { width:22px; height:22px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:10.5px; font-weight:900; overflow:hidden; }
.tb-pl .av img { width:100%; height:100%; object-fit:cover; }
/* winner */
.gvr-winner { margin:14px 16px 0; background:linear-gradient(150deg, rgba(255,201,60,.22), rgba(255,201,60,.08)); border:1.5px solid rgba(255,201,60,.55); border-radius:18px; padding:14px; }
.gvr-trophy { font-size:44px; text-align:center; }
.gvr-wintitle { text-align:center; font-weight:900; font-size:17px; margin:4px 0 8px; }
.gvr-winrow { display:flex; align-items:center; gap:10px; padding:8px 0; }
.gvr-winrow + .gvr-winrow { border-top:1px solid rgba(255,255,255,.14); }
.gvr-wava { width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:900; color:#fff; overflow:hidden; flex:none; }
.gvr-wava img { width:100%; height:100%; object-fit:cover; }
.gvr-winrow b { display:block; font-size:14px; } .gvr-winrow span { font-size:11.5px; color:rgba(255,255,255,.75); }
.gvr-medal { margin-left:auto; font-size:23px; }
.gvg-emoji { font-size:34px; line-height:1.15; display:block; }
.gvg-pick { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:6px; }
.gvg-pickbtn { background:#F4F1EA; border:1.5px solid #E4E0D2; border-radius:999px; padding:9px 14px; font-weight:800; font-size:13px; cursor:pointer; }
.gvg-pickbtn.sel { background:#12805F; color:#fff; border-color:#12805F; }

/* ===== Fix 102 · Spin Battle ===== */
.gvr-gcard.pick { cursor:pointer; } .gvr-gcard.pick.sel { border-color:#F2C94C; background:rgba(255,201,60,.12); }
.sp-wrap { display:flex; justify-content:center; margin-top:16px; position:relative; padding:0 16px; }
.sp-wheel { width:min(288px,80vw); aspect-ratio:1; border-radius:50%; position:relative; box-shadow:0 20px 44px rgba(0,0,0,.45), inset 0 0 0 10px #F7F1DE, inset 0 0 0 13px #D8CFB2; flex:none; }
.sp-hub { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:74px; height:74px; border-radius:50%; background:radial-gradient(circle at 35% 30%, #FFF3C4, #FFC93C 60%, #D98A06); display:flex; align-items:center; justify-content:center; font-size:28px; box-shadow:0 8px 18px rgba(0,0,0,.35); z-index:3; }
.sp-lab { position:absolute; left:50%; top:50%; font-weight:900; font-size:13.5px; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,.4); z-index:2; transform-origin:0 0; }
.sp-pointer { position:absolute; top:-4px; left:50%; transform:translateX(-50%); font-size:30px; z-index:4; filter:drop-shadow(0 3px 4px rgba(0,0,0,.4)); }
.sp-btnrow { display:flex; gap:9px; margin:18px 16px 0; }
.sp-btn { flex:1; background:linear-gradient(120deg,#FFC93C,#F2A93B); color:#4A3200; border:none; border-radius:16px; padding:15px 8px; font-weight:900; font-size:15.5px; box-shadow:0 12px 26px rgba(242,169,59,.35); cursor:pointer; font-family:inherit; }
.sp-btn.bank { background:linear-gradient(140deg,#1FA36B,#12805F); color:#fff; box-shadow:0 12px 26px rgba(18,128,95,.35); }
.sp-banner { margin:18px 16px 0; background:rgba(0,0,0,.22); border-radius:14px; padding:13px; text-align:center; font-size:13.5px; }
.sp-turn { text-align:center; font-size:12.5px; color:rgba(255,255,255,.78); margin-top:11px; padding:0 16px; }
.sp-scores { display:flex; gap:7px; padding:14px 16px 0; flex-wrap:wrap; justify-content:center; }
.sp-sc { background:rgba(0,0,0,.22); border-radius:12px; padding:8px 11px; font-size:11.5px; font-weight:800; text-align:center; color:#fff; }
.sp-sc b { display:block; font-size:15px; } .sp-sc i { display:block; font-style:normal; color:#FFD968; font-size:10.5px; }
.sp-sc.on { background:rgba(255,201,60,.18); border:1.5px solid rgba(255,201,60,.55); }

/* ===== Fix 103 · RPS Battle ===== */
.rps-banner { margin:16px 16px 0; background:rgba(0,0,0,.22); border-radius:16px; padding:13px; text-align:center; }
.rps-banner b { font-size:16px; } .rps-banner span { display:block; font-size:11.5px; color:rgba(255,255,255,.7); margin-top:3px; }
.rps-choices { display:grid; grid-template-columns:1fr 1fr 1fr; gap:10px; padding:15px 16px 0; }
.rps-c { border-radius:19px; padding:17px 6px 13px; text-align:center; background:rgba(255,255,255,.08); border:1.5px solid rgba(255,255,255,.15); color:#fff; font-family:inherit; cursor:pointer; }
.rps-c .em { font-size:43px; display:block; } .rps-c b { font-size:13px; display:block; margin-top:6px; }
.rps-c.sel { background:linear-gradient(160deg,#FFF3C4,#FFC93C); color:#5B4300; border-color:#FFE9A8; box-shadow:0 12px 24px rgba(242,169,59,.4); }
.rps-c:disabled { opacity:.75; cursor:default; }
.rps-players { margin:16px 16px 0; background:rgba(0,0,0,.22); border-radius:17px; padding:10px 13px; }
.rps-p { display:flex; align-items:center; gap:9px; padding:6px 0; }
.rps-p .av { width:31px; height:31px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:900; font-size:12.5px; flex:none; color:#fff; overflow:hidden; }
.rps-p .av img { width:100%; height:100%; object-fit:cover; }
.rps-p .nm { font-size:13px; font-weight:800; }
.rps-p .pick { margin-left:auto; font-size:15px; color:rgba(255,255,255,.8); }
.rps-p .lives { font-size:11px; letter-spacing:1px; margin-left:auto; }
.rps-p .lives + .pick { margin-left:8px; }
.rps-p.out { opacity:.45; }

/* ===== Fix 104 · Colour Clash ===== */
.cc-opps { display:flex; gap:8px; padding:14px 16px 0; flex-wrap:wrap; }
.cc-opp { flex:1; min-width:100px; background:rgba(0,0,0,.22); border:1.5px solid transparent; border-radius:14px; padding:9px 11px; display:flex; align-items:center; gap:8px; font-size:12px; flex-wrap:wrap; }
.cc-opp.on { border-color:rgba(255,201,60,.6); background:rgba(255,201,60,.12); }
.cc-oava { width:28px; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:900; font-size:12px; color:#fff; overflow:hidden; flex:none; }
.cc-oava img { width:100%; height:100%; object-fit:cover; }
.cc-ocount { color:rgba(255,255,255,.8); font-weight:800; }
.cc-one { background:#FF5A76; color:#fff; font-weight:900; font-size:9.5px; border-radius:6px; padding:2.5px 6px; }
.cc-centre { display:flex; align-items:flex-start; justify-content:center; gap:18px; margin-top:18px; padding:0 16px; }
.cc-pile, .cc-topwrap { display:flex; flex-direction:column; align-items:center; gap:7px; }
.cc-pile-lbl { font-size:10px; font-weight:900; letter-spacing:1px; color:rgba(255,255,255,.6); }
.cc-arrow { font-size:26px; color:rgba(255,255,255,.55); padding-top:34px; }
.cc-card { width:86px; height:122px; border-radius:13px; display:flex; align-items:center; justify-content:center; box-shadow:0 12px 24px rgba(0,0,0,.35), inset 0 0 0 3px rgba(255,255,255,.85); }
.cc-card.big { width:96px; height:136px; }
.cc-card.back { background:linear-gradient(155deg,#0B4A38,#06231C); }
.cc-oval { background:#FFFDF6; border-radius:50%; width:74%; height:58%; display:flex; flex-direction:column; align-items:center; justify-content:center; transform:rotate(-18deg); box-shadow:inset 0 0 0 2px rgba(0,0,0,.06); }
.cc-oval b { font-size:23px; color:#22312A; line-height:1; }
.cc-oval i { font-style:normal; font-size:7.5px; font-weight:900; letter-spacing:.6px; color:#5C665E; margin-top:2px; }
.cc-oval.back { background:rgba(255,255,255,.1); } .cc-oval.back b { font-size:26px; } .cc-oval.back i { color:rgba(255,255,255,.7); }
.cc-card.mini { width:62px; height:88px; border-radius:10px; }
.cc-card.mini .cc-oval b { font-size:16.5px; } .cc-card.mini .cc-oval i { font-size:6px; }
.cc-action { text-align:center; font-size:13px; color:#FFD968; font-weight:800; padding:13px 18px 0; min-height:20px; }
.cc-turnbanner { text-align:center; font-size:12.5px; color:rgba(255,255,255,.8); padding:6px 18px 0; }
.cc-btnrow { display:flex; justify-content:center; padding:11px 16px 0; }
.cc-drawbtn { background:linear-gradient(120deg,#FFC93C,#F2A93B); color:#4A3200; border:none; border-radius:13px; padding:12px 20px; font-weight:900; font-size:13.5px; cursor:pointer; font-family:inherit; box-shadow:0 10px 22px rgba(242,169,59,.3); }
.cc-drawbtn.pass { background:rgba(255,255,255,.12); color:#fff; border:1.5px solid rgba(255,255,255,.3); box-shadow:none; }
.cc-handlbl { margin:15px 16px 0; font-size:11px; font-weight:900; letter-spacing:1px; color:rgba(255,255,255,.6); }
.cc-hand { display:flex; gap:8px; overflow-x:auto; padding:10px 16px 6px; scrollbar-width:none; }
.cc-hand::-webkit-scrollbar { display:none; }
.cc-handcard { background:none; border:none; padding:0; cursor:pointer; flex:none; transition:transform .15s ease; }
.cc-handcard.can { transform:translateY(-9px); } .cc-handcard.can .cc-card { box-shadow:0 16px 28px rgba(0,0,0,.4), inset 0 0 0 3px #FFD968; }
.cc-handcard.dim { opacity:.62; }
.cc-nohand { color:rgba(255,255,255,.6); font-size:13px; }
.cc-colors { display:grid; grid-template-columns:1fr 1fr; gap:10px; padding:4px 0 6px; }
.cc-colorbtn { border:none; border-radius:14px; padding:16px; font-weight:900; font-size:15px; color:#fff; cursor:pointer; font-family:inherit; text-shadow:0 1px 3px rgba(0,0,0,.35); }

/* ================= Fix 106 · Ivory Royale (owner-approved Set 23, 2026-10-28) ================= */
#app.shell-mode{background:linear-gradient(178deg,#FDFBF6 0%,#FAF4E8 55%,#F7EFDD 100%);}
.tabbar{border-color:#F0E7D3;box-shadow:0 18px 36px rgba(120,90,20,.16),0 2px 6px rgba(120,90,20,.06);}
.dash{padding-bottom:6px;}
.dash-hero{position:relative;border-radius:24px;overflow:hidden;height:172px;box-shadow:0 18px 34px rgba(11,92,64,.32);margin-bottom:4px;}
.dash-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%;}
.dash-hero-sc{position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,46,32,.72) 0%,rgba(6,46,32,.34) 48%,rgba(6,46,32,0) 68%);}
.dash-hero-tx{position:absolute;left:16px;top:14px;width:62%;}
.dash-hero-tx h3{color:#FFF;font-size:19px;text-shadow:0 2px 8px rgba(6,40,28,.5);}
.dash-hero-tx p{color:rgba(255,255,255,.92);font-size:11.5px;margin-top:4px;line-height:1.5;text-shadow:0 1px 6px rgba(6,40,28,.5);}
.dash-hero-cta{position:absolute;left:16px;bottom:14px;background:linear-gradient(120deg,#FFC93C,#F5B93B);color:#4A3200;border:none;border-radius:999px;padding:9px 15px;font-weight:900;font-size:12.5px;box-shadow:0 10px 20px rgba(6,40,28,.35);cursor:pointer;}
.dash-sect{font-size:16px;font-weight:900;color:var(--ink);margin:18px 2px 10px;}
.dash-cats{display:grid;grid-template-columns:1fr 1fr;gap:11px;}
.dash-cat{display:flex;align-items:center;gap:11px;background:#FFF;border:1px solid #F0E7D3;border-radius:20px;padding:13px;box-shadow:0 10px 24px rgba(120,90,20,.08);cursor:pointer;text-align:left;position:relative;font-family:inherit;width:100%;}
.dash-icn{width:46px;height:46px;border-radius:14px;object-fit:cover;flex:none;box-shadow:0 6px 14px rgba(120,90,20,.15);}
.dash-orb{width:46px;height:46px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:22px;flex:none;box-shadow:0 6px 14px rgba(30,80,160,.25);}
.dash-cat-tx{flex:1;min-width:0;}
.dash-cat-tx b{display:block;font-size:14.5px;color:var(--ink);}
.dash-cat-tx span{display:block;font-size:9.8px;color:var(--ink-mute);margin-top:2px;line-height:1.45;}
.dash-bdg{position:absolute;top:10px;right:10px;background:#FF3B5C;color:#FFF;font-size:8.5px;font-weight:900;border-radius:999px;padding:3px 7px;}
.dash-bdg.gold{background:#FFF3D6;border:1px solid #EBCB7E;color:#B97F08;}
.dash-bdg.dim{background:#F4EFE2;border:1px solid #EAE0C8;color:var(--ink-mute);}
.dash-feats{display:flex;flex-direction:column;gap:11px;}
.dash-feat{display:flex;align-items:center;gap:12px;background:#FFF;border:1px solid #F0E7D3;border-radius:20px;padding:14px;box-shadow:0 10px 24px rgba(120,90,20,.08);cursor:pointer;text-align:left;font-family:inherit;width:100%;}
.dash-feat-ic{font-size:24px;}
.dash-feat-tx{flex:1;min-width:0;}
.dash-feat-tx b{display:block;font-size:14.5px;color:var(--ink);}
.dash-feat-tx span{display:block;font-size:11px;color:var(--ink-mute);margin-top:2px;line-height:1.45;}
.dash-arr{color:#C9BC96;font-size:18px;flex:none;}
.dash-wallet{display:flex;align-items:center;gap:12px;width:100%;margin-top:11px;background:linear-gradient(120deg,#FFF8E6,#FDEFC8);border:1px solid #F0E0B0;border-radius:20px;padding:14px;box-shadow:0 10px 24px rgba(120,90,20,.1);cursor:pointer;text-align:left;font-family:inherit;}
.dash-wal-ic{font-size:24px;}
.dash-wal-tx{flex:1;}
.dash-wal-tx b{display:block;font-size:15px;color:#4A3200;}
.dash-wal-tx span{display:block;font-size:11px;color:#8A7B52;margin-top:2px;}
.fab-plus{position:absolute;right:16px;bottom:104px;width:56px;height:56px;border-radius:50%;border:3.5px solid #FFF;background:linear-gradient(140deg,#FFC93C,#F2993B);color:#4A3200;font-size:28px;font-weight:900;box-shadow:0 14px 28px rgba(242,179,61,.45);cursor:pointer;z-index:40;display:flex;align-items:center;justify-content:center;padding:0;}
.ai-big{display:flex;gap:12px;align-items:center;background:#FFF;border:1px solid #F0E7D3;border-radius:20px;padding:14px;box-shadow:0 10px 24px rgba(120,90,20,.08);margin-bottom:11px;cursor:pointer;}
.ai-orb{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;flex:none;box-shadow:0 8px 16px rgba(120,90,20,.2);}
.ai-tx{flex:1;min-width:0;}
.ai-tx b{font-size:16px;color:var(--ink);}
.ai-tx>span{display:block;font-size:11.5px;color:var(--ink-soft);margin-top:2px;}
.ai-tx .ai-prev{color:var(--ink-mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ai-pill{flex:none;background:#FFF3D6;border:1px solid #EBCB7E;color:#B97F08;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:800;text-align:center;}
.ai-note{background:#FFF;border:1px solid #F0E7D3;border-radius:18px;padding:13px 15px;font-size:11.5px;color:var(--ink-soft);line-height:1.6;box-shadow:0 8px 20px rgba(120,90,20,.06);}
.ss-rows{display:flex;flex-direction:column;gap:9px;margin-top:12px;}
.ss-row{display:flex;align-items:center;gap:12px;width:100%;background:#FFF;border:1px solid #F0E7D3;border-radius:16px;padding:13px;font-size:22px;cursor:pointer;font-family:inherit;text-align:left;}
.ss-tx{flex:1;}
.ss-tx b{display:block;font-size:14.5px;color:var(--ink);}
.ss-tx span{display:block;font-size:11px;color:var(--ink-mute);margin-top:1px;}

/* ================= Fix 106.1 · VIP hero ================= */
.vip-hero{background:linear-gradient(120deg,#FFF3D6,#FDEFC8);border:1px solid #EBCB7E;border-radius:20px;padding:18px;text-align:center;box-shadow:0 10px 24px rgba(120,90,20,.1);margin-bottom:11px;}
.vip-crown{font-size:38px;line-height:1;}
.vip-hero b{display:block;font-size:16px;color:#4A3200;margin-top:7px;}
.vip-hero span{display:block;font-size:11.5px;color:#8A7B52;margin-top:4px;line-height:1.55;}

/* ================= Fix 107 · Live hero tint, Me delete, delete sheet ================= */
.live-hero{background:linear-gradient(120deg,#FFE9E6,#FDECE8);border-color:#F3C1B8;}
.live-hero b{color:#8C2B1E;}
.live-hero span{color:#A06A5F;}
.me2-delete{display:block;width:calc(100% - 32px);margin:16px 16px 0;text-align:center;background:#FDECEA;border:1.5px solid #F0B8B3;color:#C0392B;font-size:15px;font-weight:900;border-radius:16px;padding:13px;cursor:pointer;font-family:inherit;box-shadow:0 3px 14px rgba(30,40,35,.05);}
.del-warn{font-size:14.5px;line-height:1.6;color:var(--ink);margin-top:13px;}
.del-sub{font-size:12.5px;line-height:1.6;color:var(--ink-soft);margin-top:8px;}
.del-btn{background:linear-gradient(120deg,#E05252,#C0392B);color:#FFF;margin-top:16px;box-shadow:0 10px 22px rgba(192,57,43,.3);}

/* ================= Fix 108 · Home categories 3 per row (owner, 2026-10-28) ================= */
.dash-cats{grid-template-columns:repeat(3,1fr);gap:9px;}
.dash-cat{flex-direction:column;align-items:flex-start;gap:9px;padding:12px 11px;border-radius:18px;}
.dash-orb{width:44px;height:44px;border-radius:13px;font-size:21px;}
.dash-cat .limg{width:44px;height:44px;border-radius:13px;}
.dash-cat-tx b{font-size:12.5px;line-height:1.3;}
.dash-cat-tx span{display:none;}
.dash-bdg{top:8px;right:8px;font-size:8px;padding:2.5px 6px;}

/* ================= Fix 112 · Moment comment likes + replies ================= */
.cm-tx{flex:1;min-width:0;}
.cm-acts{display:flex;gap:16px;margin-top:5px;}
.cm-like,.cm-rbtn{background:none;border:none;padding:2px 0;font-family:inherit;font-size:12px;font-weight:800;color:var(--ink-mute);cursor:pointer;}
.cm-like.on{color:#E0245E;}
.cm-row.reply{margin-left:43px;}
.md-replybar{display:flex;align-items:center;justify-content:space-between;background:#FBF3D9;border:1px solid #EFE0B0;color:#7A5B12;border-radius:12px;padding:8px 12px;font-size:12.5px;margin-top:12px;}
.md-replybar button{background:none;border:none;font-size:13px;cursor:pointer;color:#7A5B12;padding:2px 4px;font-family:inherit;}

/* ================= Fix 114 · Moment photos: natural shape + viewer ================= */
/* A single photo keeps its own proportions (never stretched the full
   length of the card); very tall photos are capped, width follows. */
.mo2-ph1{width:100%;max-width:100%;height:auto;max-height:560px;object-fit:cover;}
.mv-view{position:fixed;inset:0;background:rgba(8,8,8,.97);z-index:9999;display:flex;align-items:center;justify-content:center;}
.mv-view img{max-width:100%;max-height:100%;object-fit:contain;display:block;}
.mv-x{position:absolute;top:14px;right:14px;width:38px;height:38px;border-radius:50%;border:none;background:rgba(255,255,255,.16);color:#fff;font-size:16px;cursor:pointer;font-family:inherit;}
.mv-nav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;border:none;background:rgba(255,255,255,.16);color:#fff;font-size:24px;line-height:1;cursor:pointer;font-family:inherit;}
.mv-nav.prev{left:10px;}
.mv-nav.next{right:10px;}
.mv-count{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);color:#fff;font-size:12.5px;font-weight:700;background:rgba(255,255,255,.16);padding:4px 12px;border-radius:999px;}

/* Fix 116 · the browser must never pull-to-refresh the app away from
   the current screen; the in-app pull (app.js) refreshes in place. */
html,body{overscroll-behavior:none;}
.sh-main{overscroll-behavior:contain;}
#ptr-ind{position:fixed;left:50%;top:10px;z-index:12000;width:42px;height:42px;margin-left:-21px;border-radius:50%;background:#ffffff;box-shadow:0 4px 18px rgba(60,40,5,.25);display:flex;align-items:center;justify-content:center;font-size:21px;color:#1d7a4f;opacity:0;pointer-events:none;transform:translateY(-76px);}
#ptr-ind .ptr-spin{display:inline-block;line-height:1;}
#ptr-ind.busy .ptr-spin{animation:ptrRot .7s linear infinite;}
@keyframes ptrRot{to{transform:rotate(360deg);}}

/* Fix 118 · VIP Care (Report / Feedback / History) */
.care-tabs{display:flex;gap:8px;margin:12px 0 2px;}
.care-tab{flex:1;padding:10px 0;border-radius:999px;background:#fff;border:1.5px solid #EFE6D0;font-weight:800;color:#7A6A45;cursor:pointer;font-size:14px;}
.care-tab.on{background:linear-gradient(140deg,#12805F,#0B5B40);color:#fff;border-color:transparent;}
.care-sec{font-weight:800;margin:16px 0 8px;color:#3D3225;font-size:15px;}
.care-sec i{color:#D64545;font-style:normal;}
.care-chips{display:flex;flex-wrap:wrap;gap:8px;}
.care-chip{padding:9px 14px;border-radius:999px;background:#F4EEE1;font-weight:700;color:#5C4E33;cursor:pointer;border:1.5px solid transparent;font-size:14px;}
.care-chip.on{background:#12805F;color:#fff;}
.care-radio{display:flex;align-items:center;gap:10px;padding:11px 12px;background:#fff;border:1.5px solid #EFE6D0;border-radius:14px;margin-bottom:8px;font-weight:600;cursor:pointer;}
.care-radio .dot{width:20px;height:20px;border-radius:50%;border:2px solid #CBBB93;flex:none;box-sizing:border-box;}
.care-radio.on{border-color:#12805F;}
.care-radio.on .dot{border-color:#12805F;background:#12805F;box-shadow:inset 0 0 0 3px #fff;}
.care-ta{width:100%;min-height:110px;border:1.5px solid #EFE6D0;border-radius:14px;background:#FBF7EC;padding:12px;font:inherit;resize:vertical;box-sizing:border-box;}
.care-count{text-align:right;font-size:12px;color:#A08C5B;margin-top:4px;}
.care-photos{display:flex;gap:10px;flex-wrap:wrap;}
.care-ph{position:relative;width:76px;height:76px;border-radius:14px;overflow:hidden;background:#F4EEE1;flex:none;}
.care-ph img{width:100%;height:100%;object-fit:cover;display:block;}
.care-ph .cx{position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:50%;background:rgba(20,16,8,.72);color:#fff;border:none;font-size:11px;line-height:1;cursor:pointer;padding:0;}
.care-add{width:76px;height:76px;border-radius:14px;background:#F4EEE1;display:flex;align-items:center;justify-content:center;font-size:28px;cursor:pointer;flex:none;}
.care-email{width:100%;border:1.5px solid #EFE6D0;border-radius:14px;background:#FBF7EC;padding:12px;font:inherit;box-sizing:border-box;}
.care-inforow{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;background:#fff;border:1.5px solid #EFE6D0;border-radius:14px;padding:11px 12px;font-weight:600;}
.care-toggle{border:none;border-radius:999px;padding:6px 16px;font-weight:800;background:#EFE6D0;color:#7A6A45;cursor:pointer;}
.care-toggle.on{background:#12805F;color:#fff;}
.btn[disabled]{opacity:.45;}
.care-row{display:flex;align-items:center;gap:10px;background:#fff;border:1.5px solid #EFE6D0;border-radius:14px;padding:12px;margin-top:10px;cursor:pointer;}
.care-ric{font-size:20px;flex:none;}
.care-rtx{flex:1;min-width:0;display:flex;flex-direction:column;}
.care-rtx b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.care-rtx span{color:#8A7648;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.care-status{font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px;flex:none;}
.care-status.open{background:#FDEBC8;color:#8A5A00;}
.care-status.in_progress{background:#DCEBFF;color:#20548F;}
.care-status.resolved{background:#D9F2E2;color:#0B5B40;}
.care-tk-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;color:#8A7648;font-size:13px;margin-bottom:8px;}
.care-tk-body{white-space:pre-wrap;line-height:1.5;color:#3D3225;}
.care-reply{background:#EFF8F2;border:1.5px solid #BFE6CF;border-radius:14px;padding:12px;margin-top:12px;}
.care-reply p{margin:6px 0 0;white-space:pre-wrap;line-height:1.5;}

/* Fix 119 · Home streak banner + Ways to earn */
.streak-banner{display:flex;align-items:center;gap:12px;width:100%;background:#fff;border:1.5px solid #F3E3C2;border-radius:18px;padding:12px 14px;margin-top:12px;cursor:pointer;text-align:left;box-shadow:0 4px 14px rgba(146,106,20,.07);}
.stk-flame{font-size:27px;flex:none;}
.stk-tx{flex:1;min-width:0;display:flex;flex-direction:column;}
.stk-tx b{font-size:15.5px;color:#3D2E12;}
.stk-tx span{font-size:12.5px;color:#97793F;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.stk-dots{display:flex;gap:4px;flex:none;}
.stk-dot{width:9px;height:9px;border-radius:50%;background:#F0E4CB;}
.stk-dot.on{background:linear-gradient(140deg,#FFB03A,#F26B1D);}
.earn-banner{display:flex;align-items:center;gap:12px;width:100%;border:none;border-radius:18px;padding:12px 14px;cursor:pointer;text-align:left;background:linear-gradient(120deg,#0B5B40,#12805F 58%,#7A5A12);color:#fff;box-shadow:0 6px 16px rgba(11,91,64,.22);}
.earn-ic{font-size:24px;flex:none;}
.earn-tx{flex:1;min-width:0;display:flex;flex-direction:column;}
.earn-tx b{font-size:15.5px;color:#fff;}
.earn-tx span{font-size:12.5px;color:rgba(255,255,255,.85);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.earn-banner .dash-arr{color:#FFD98A;}

/* Fix 120 · restriction banner */
.rst-banner{display:flex;gap:12px;align-items:flex-start;background:#FDF0EC;border:1.5px solid #F2C4B8;border-radius:18px;padding:12px 14px;margin-top:12px;}
.rst-ic{font-size:24px;flex:none;}
.rst-tx{flex:1;min-width:0;display:flex;flex-direction:column;}
.rst-tx b{color:#8B2E1E;font-size:15px;}
.rst-tx span{color:#9A4A38;font-size:12.5px;line-height:1.45;}

/* ============ Fix 127 · Voice Rooms ============ */
.vr-hero{display:flex;align-items:center;gap:11px;padding:16px 16px 13px;background:linear-gradient(120deg,#0B4A38,#12704F 55%,#B8860B 130%);color:#fff;border-radius:0 0 24px 24px;box-shadow:0 8px 22px rgba(11,74,56,.25);}
.vr-hero .vr-back{background:rgba(255,255,255,.16);color:#fff;border:none;}
.vr-hero-tx{flex:1;min-width:0;}
.vr-hero-t{font-size:21px;font-weight:900;}
.vr-hero-s{font-size:12.5px;opacity:.88;margin-top:2px;line-height:1.4;}
.vr-create-btn{background:linear-gradient(135deg,#F3CD6B,#D9A514);color:#3D2C00;border:none;font-weight:900;font-size:13.5px;padding:10px 14px;border-radius:22px;flex:none;box-shadow:0 5px 14px rgba(0,0,0,.25);}
.vr-mine{display:block;width:calc(100% - 28px);margin:12px 14px 0;background:#FFF3D6;border:1.5px solid #EBCB7E;color:#7A5200;font-weight:800;font-size:14px;padding:12px 14px;border-radius:16px;text-align:left;}
.vr-chips{display:flex;gap:8px;padding:13px 14px 3px;overflow-x:auto;scrollbar-width:none;}
.vr-chips::-webkit-scrollbar{display:none;}
.vr-chips.wrap{flex-wrap:wrap;overflow:visible;padding:0;}
.vr-chip{flex:none;padding:8px 13px;border-radius:20px;background:#fff;border:1.5px solid #E7DCC0;font-size:13px;font-weight:700;color:#44543C;cursor:pointer;}
.vr-chip.on{background:#0B4A38;color:#fff;border-color:#0B4A38;}
.vr-code-row{display:flex;gap:8px;padding:11px 14px 2px;}
.vr-code-in{flex:1;}
.vr-code-btn{background:#0B4A38;color:#fff;border:none;font-weight:800;padding:0 18px;border-radius:14px;cursor:pointer;}
.vr-card{margin:11px 14px 0;background:#fff;border:1px solid #F0E7CF;border-radius:20px;overflow:hidden;box-shadow:0 4px 14px rgba(120,100,40,.08);}
.vr-band{display:flex;align-items:center;gap:8px;padding:11px 13px;color:#fff;}
.vr-live{color:#FFD9DE;background:rgba(190,18,60,.85);font-size:10px;font-weight:900;padding:3px 8px;border-radius:12px;letter-spacing:.6px;animation:vrBlink 1.6s infinite;}
@keyframes vrBlink{0%,100%{opacity:1}50%{opacity:.55}}
.vr-band-t{font-size:15.5px;font-weight:900;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 3px rgba(0,0,0,.3);}
.vr-ends{font-size:11px;font-weight:700;opacity:.92;flex:none;}
.vr-th-emerald{background:linear-gradient(120deg,#0E5C40,#083B29);}
.vr-th-purple{background:linear-gradient(120deg,#7C3AED,#3B1173);}
.vr-th-sunset{background:linear-gradient(120deg,#F97316,#BE123C);}
.vr-th-ocean{background:linear-gradient(120deg,#0284C7,#1D4ED8);}
.vr-th-rose{background:linear-gradient(120deg,#EC4899,#9D174D);}
.vr-th-gold{background:linear-gradient(120deg,#D97706,#92400E);}
.vr-card-b{padding:11px 13px 13px;}
.vr-tags{display:flex;gap:6px;flex-wrap:wrap;}
.vr-tag{font-size:11px;font-weight:800;padding:4px 9px;border-radius:12px;background:#EDF3E4;color:#0B4A38;}
.vr-tag.topic{background:#F1E8FF;color:#5B21B6;}
.vr-tag.coin{background:#FFF3D6;color:#8A6100;display:inline-flex;align-items:center;gap:4px;}
.vr-tag.lite{background:rgba(255,255,255,.18);color:#fff;}
.vr-card-r{display:flex;align-items:center;gap:9px;margin-top:11px;}
.vr-host{display:flex;align-items:center;gap:7px;min-width:0;}
.vr-host-n{font-size:12.5px;font-weight:800;color:#1D2B1A;line-height:1.15;max-width:158px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.vr-host-n small{display:block;font-size:10px;color:#93895F;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.vr-stack{display:flex;flex:1;}
.vr-stack-i{margin-left:-9px;}
.vr-stack-i:first-child{margin-left:0;}
.vr-stack-i .vr-avimg,.vr-stack-i .vr-avini{border:2px solid #fff;}
.vr-avimg{border-radius:50%;object-fit:cover;display:block;}
.vr-avini{border-radius:50%;color:#fff;font-weight:900;display:inline-flex;align-items:center;justify-content:center;}
.vr-count{font-size:12px;font-weight:700;color:#68755F;flex:none;}
.vr-join{background:linear-gradient(135deg,#12704F,#0B4A38);color:#fff;border:none;font-weight:900;font-size:13.5px;padding:10px 17px;border-radius:20px;flex:none;cursor:pointer;box-shadow:0 5px 12px rgba(11,74,56,.28);}
.vr-empty{margin:26px 18px;text-align:center;background:#fff;border:1px dashed #E7DCC0;border-radius:22px;padding:28px 20px;}
.vr-empty-m{font-size:40px;}
.vr-empty h3{color:#123524;font-size:17px;margin:8px 0 5px;}
.vr-empty p{color:#68755F;font-size:13.5px;line-height:1.5;}
.vr-start-big{display:block;width:100%;margin-top:14px;background:linear-gradient(135deg,#12704F,#0B4A38);color:#fff;border:none;font-size:16px;font-weight:900;padding:15px;border-radius:17px;cursor:pointer;box-shadow:0 9px 20px rgba(11,74,56,.3);}
.vr-form{padding:4px 16px 22px;}
.vr-lab{font-size:12px;font-weight:800;letter-spacing:.8px;color:#93895F;margin:17px 0 8px;}
.vr-types{display:flex;gap:9px;}
.vr-type{flex:1;background:#fff;border:2px solid #EFE7D2;border-radius:16px;padding:12px 8px;text-align:center;cursor:pointer;display:flex;flex-direction:column;gap:2px;align-items:center;}
.vr-type.on{border-color:#0B4A38;background:#F2F8EC;box-shadow:0 5px 14px rgba(11,74,56,.13);}
.vr-type-i{font-size:21px;}
.vr-type b{font-size:13.5px;color:#123524;}
.vr-type span{font-size:10.8px;color:#7C846F;font-weight:600;line-height:1.35;}
.vr-entry-row{display:flex;align-items:center;gap:12px;}
.vr-step{width:40px;height:40px;border-radius:50%;border:1.5px solid #E7DCC0;background:#fff;font-size:19px;font-weight:900;color:#0B4A38;cursor:pointer;}
.vr-entry-v{font-size:17px;font-weight:900;color:#123524;display:inline-flex;align-items:center;gap:5px;}
.vr-entry-h{font-size:11.5px;color:#93895F;font-weight:600;}
.vr-themes{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;}
.vr-theme{height:62px;border-radius:14px;border:3px solid transparent;position:relative;cursor:pointer;padding:0;}
.vr-theme.on{border-color:#D9A514;}
.vr-theme span{position:absolute;bottom:5px;left:0;right:0;text-align:center;color:#fff;font-size:10.5px;font-weight:800;text-shadow:0 1px 3px rgba(0,0,0,.55);}
.vr-rules{margin-top:17px;background:#FBF6E9;border:1px solid #F0E7CF;border-radius:14px;padding:12px 14px;font-size:12.5px;color:#5C6656;line-height:1.6;}
/* in-room */
.vr-room{height:var(--room-vv-h,100%);display:flex;flex-direction:column;color:#fff;position:relative;overflow:hidden;padding:13px 13px 11px;transition:height .25s ease;}
.vr-room.vr-th-emerald{background:radial-gradient(560px 300px at 88% -60px,rgba(232,185,60,.32),transparent 60%),linear-gradient(168deg,#12573D,#0B4A38 45%,#072A1F);}
.vr-room.vr-th-purple{background:radial-gradient(560px 300px at 88% -60px,rgba(236,72,153,.35),transparent 60%),linear-gradient(168deg,#6D28D9,#3B1173 50%,#1E0740);}
.vr-room.vr-th-sunset{background:radial-gradient(560px 300px at 88% -60px,rgba(255,220,120,.4),transparent 60%),linear-gradient(168deg,#F97316,#BE123C 55%,#5F0A1E);}
.vr-room.vr-th-ocean{background:radial-gradient(560px 300px at 88% -60px,rgba(125,211,252,.4),transparent 60%),linear-gradient(168deg,#0284C7,#1D4ED8 50%,#0B1E4B);}
.vr-room.vr-th-rose{background:radial-gradient(560px 300px at 88% -60px,rgba(255,214,232,.4),transparent 60%),linear-gradient(168deg,#EC4899,#9D174D 55%,#4A0423);}
.vr-room.vr-th-gold{background:radial-gradient(560px 300px at 88% -60px,rgba(255,240,180,.5),transparent 60%),linear-gradient(168deg,#D97706,#92400E 55%,#3A1502);}
/* Fix 184 · layered room backgrounds (BackgroundRenderer): the
   layer never takes touches, content always paints above it, and
   without a layer the gradient theme above is the background. */
.room-bg{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.vr-room.has-bg>*{z-index:1;}
.vr-room.has-bg>.room-bg{z-index:0;}
.roombg-media{position:absolute;inset:0;width:100%;height:100%;border:0;}
img.roombg-media,video.roombg-media{object-fit:cover;}
.roombg-lottie svg{width:100%!important;height:100%!important;display:block;}
.roombg-fit-cover{object-fit:cover;}
.roombg-fit-contain{object-fit:contain;}
.roombg-fit-center{object-fit:none;object-position:center;}
.roombg-fit-fit{object-fit:fill;}
.roombg-shade{position:absolute;inset:0;pointer-events:none;}
.roombg-shade.ov-dark{background:#06231A;}
.roombg-shade.ov-light{background:#FFF7E6;}
.roombg-shade.ov-gradient{background:linear-gradient(168deg,rgba(4,26,18,.15),rgba(4,26,18,.78));opacity:1!important;}
.vr-r-top{display:flex;align-items:center;gap:8px;}
.vr-r-ic{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.25);color:#fff;font-size:19px;flex:none;cursor:pointer;}
.vr-r-title{flex:1;min-width:0;font-size:16.5px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 3px rgba(0,0,0,.3);}
.vr-follow{background:linear-gradient(135deg,#F3CD6B,#D9A514);color:#3D2C00;border:none;font-weight:900;font-size:12.5px;padding:8px 13px;border-radius:18px;flex:none;cursor:pointer;}
.vr-follow.on{background:rgba(255,255,255,.2);color:#fff;border:1px solid rgba(255,255,255,.4);}
.vr-r-sub{display:flex;align-items:center;gap:7px;margin-top:9px;}
.vr-r-id{color:rgba(255,255,255,.78);font-size:11.5px;font-weight:600;}
.vr-stage{display:grid;grid-template-columns:repeat(4,1fr);gap:13px 6px;margin-top:17px;flex:none;}
.vr-seat{text-align:center;min-width:0;}
.vr-seat-c{width:60px;height:60px;border-radius:50%;margin:0 auto;display:flex;align-items:center;justify-content:center;position:relative;background:rgba(255,255,255,.13);border:2px solid rgba(255,255,255,.25);color:#fff;cursor:pointer;padding:0;}
.vr-seat-c.filled{background:transparent;border-color:rgba(255,255,255,.12);}
.vr-seat-c.speaking{box-shadow:0 0 0 3px #F3CD6B,0 0 22px rgba(243,205,107,.8);animation:vrSpeak 1.4s infinite;}
@keyframes vrSpeak{0%,100%{box-shadow:0 0 0 3px #F3CD6B,0 0 16px rgba(243,205,107,.6)}50%{box-shadow:0 0 0 4px #F3CD6B,0 0 28px rgba(243,205,107,.95)}}
.vr-seat-c .vr-avimg,.vr-seat-c .vr-avini{border-radius:50%;}
.vr-seat-hand{font-size:21px;opacity:.85;}
.vr-mic-b{position:absolute;bottom:-3px;right:-3px;width:20px;height:20px;border-radius:50%;background:#12704F;border:2px solid rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;font-size:10px;}
.vr-mic-b.off{background:#5C6656;}
.vr-seat-n{font-size:11px;font-weight:700;margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 2px;text-shadow:0 1px 2px rgba(0,0,0,.35);}
.vr-seat-n.num{color:rgba(255,255,255,.55);margin-top:5px;}
.vr-host-tag{display:inline-block;background:#D9A514;color:#2E2100;font-size:8.5px;font-weight:900;padding:1.5px 6px;border-radius:6px;margin-top:3px;}
.vr-listeners{display:flex;align-items:center;gap:4px;margin-top:14px;background:rgba(0,0,0,.24);border-radius:15px;padding:7px 10px;flex:none;min-height:44px;}
.vr-lis-i{background:none;border:none;padding:0;cursor:pointer;}
.vr-lis-i .vr-avimg,.vr-lis-i .vr-avini{border:1.5px solid rgba(255,255,255,.55);}
.vr-lis-t{color:rgba(255,255,255,.88);font-size:11.5px;font-weight:600;margin-left:5px;}
.vr-ann{margin-top:11px;background:rgba(255,244,205,.97);color:#5C4A08;border-radius:13px;padding:9px 12px;font-size:12.8px;font-weight:700;display:flex;gap:7px;box-shadow:0 4px 12px rgba(0,0,0,.2);flex:none;}
.vr-feed{flex:1;overflow-y:auto;margin-top:11px;display:flex;flex-direction:column;gap:6px;min-height:80px;padding-right:2px;}
.vr-feed-msg{background:rgba(8,26,17,.55);border-radius:12px;padding:6px 10px;font-size:12.8px;line-height:1.4;width:fit-content;max-width:94%;}
.vr-feed-msg b{color:#F3CD6B;}
.vr-feed-msg.mine{background:rgba(18,112,79,.65);}
.vr-feed-sys{align-self:center;background:rgba(217,165,20,.25);color:#FFE9A8;font-size:11.8px;font-weight:600;border-radius:12px;padding:5px 11px;text-align:center;max-width:94%;}
.vr-feed-sys.ann{background:rgba(255,244,205,.95);color:#5C4A08;font-weight:800;}
.vr-feed-gift{align-self:center;background:rgba(190,60,160,.4);color:#FBD9FF;font-size:12.3px;font-weight:600;border-radius:12px;padding:6px 12px;text-align:center;max-width:94%;}
.vr-quick{display:flex;gap:7px;margin-top:10px;flex:none;overflow-x:auto;scrollbar-width:none;}
.vr-quick::-webkit-scrollbar{display:none;}
.vr-quick button{flex:none;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.28);color:#fff;font-size:12px;font-weight:700;padding:7px 12px;border-radius:18px;cursor:pointer;}
.vr-bar{display:flex;align-items:center;gap:8px;margin-top:10px;flex:none;}
.vr-input{flex:1;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);color:#fff;border-radius:22px;padding:11px 14px;font-size:13.5px;min-width:0;}
.vr-input::placeholder{color:rgba(255,255,255,.65);}
.vr-send{width:42px;height:42px;border-radius:50%;border:none;background:linear-gradient(135deg,#F3CD6B,#D9A514);color:#3D2C00;font-size:16px;flex:none;cursor:pointer;}
.vr-tool{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);font-size:17px;flex:none;cursor:pointer;}
.vr-tool.on{background:linear-gradient(135deg,#F3CD6B,#D9A514);box-shadow:0 4px 14px rgba(217,165,20,.55);}
.vr-sheet-wrap{position:absolute;inset:0;background:rgba(5,15,10,.55);display:flex;align-items:flex-end;justify-content:center;z-index:6;}
.vr-sheet{background:#FFF9EC;color:#1D2B1A;width:100%;max-height:82%;overflow-y:auto;border-radius:24px 24px 0 0;padding:18px 16px calc(14px + env(safe-area-inset-bottom));animation:vrUp .22s ease-out;}
@keyframes vrUp{from{transform:translateY(26px);opacity:.6}to{transform:none;opacity:1}}
.vr-sheet.center{text-align:center;}
.vr-sheet-t{font-size:16.5px;font-weight:900;color:#123524;margin-bottom:9px;}
.vr-sheet-p{font-size:13.5px;color:#5C6656;line-height:1.5;margin-bottom:6px;}
.vr-sheet-row{font-size:13.5px;color:#44543C;padding:9px 2px;}
.vr-sheet-btn{display:block;width:100%;background:#fff;border:1.5px solid #EFE7D2;color:#1D2B1A;font-weight:800;font-size:14.5px;padding:13px;border-radius:15px;margin-top:9px;cursor:pointer;text-align:center;}
.vr-sheet-btn.danger{color:#B3261E;border-color:#F2C4B8;background:#FDF0EC;}
.vr-ann-row{display:flex;gap:8px;margin-bottom:5px;}
.vr-ann-row .input{flex:1;}
.vr-ann-btn{background:#0B4A38;color:#fff;border:none;font-weight:800;padding:0 16px;border-radius:14px;cursor:pointer;}
.vr-ms-head{display:flex;gap:12px;align-items:center;padding:2px 2px 8px;}
.vr-ms-name{font-size:16.5px;font-weight:900;color:#123524;}
.vr-ms-sub{font-size:12px;color:#7C846F;font-weight:600;margin-top:2px;}
.vr-pick-row{display:flex;align-items:center;gap:11px;width:100%;background:#fff;border:1.5px solid #EFE7D2;border-radius:15px;padding:9px 12px;margin-top:8px;font-weight:800;font-size:14.5px;color:#1D2B1A;cursor:pointer;text-align:left;}
.vr-ended{margin:30px 18px;text-align:center;background:#fff;border:1px solid #F0E7CF;border-radius:22px;padding:28px 20px;}
.vr-ended h3{color:#123524;font-size:17px;margin:8px 0 5px;}
.vr-ended p{color:#68755F;font-size:13.5px;line-height:1.5;}
@keyframes vrPop{0%{transform:scale(.6);opacity:0}12%{transform:scale(1.05);opacity:1}20%{transform:scale(1)}82%{opacity:1}100%{transform:scale(1.02);opacity:0}}

/* ============ Fix 128 · Live Rooms ============ */
.lr-hero{display:flex;align-items:center;gap:11px;padding:16px 16px 13px;background:linear-gradient(120deg,#7C3AED,#C81E3A 90%);color:#fff;border-radius:0 0 24px 24px;box-shadow:0 8px 22px rgba(160,20,60,.28);}
.lr-hero .vr-back{background:rgba(255,255,255,.16);color:#fff;border:none;}
.lr-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;padding:13px 12px 4px;}
.lr-card{border-radius:20px;padding:11px 11px 13px;text-align:center;box-shadow:0 4px 14px rgba(120,60,90,.10);border:1px solid rgba(255,255,255,.7);}
.lr-pt-emerald{background:linear-gradient(165deg,#E4F4E9,#CDEBD8);}
.lr-pt-purple{background:linear-gradient(165deg,#F0E9FF,#E2D6FE);}
.lr-pt-sunset{background:linear-gradient(165deg,#FFEDE3,#FFD9C2);}
.lr-pt-ocean{background:linear-gradient(165deg,#E2F1FF,#CBE6FF);}
.lr-pt-rose{background:linear-gradient(165deg,#FFE7F1,#FFD3E4);}
.lr-pt-gold{background:linear-gradient(165deg,#FFF3D1,#FFE7AE);}
.lr-card-top{display:flex;align-items:center;gap:6px;}
.lr-chip-lang{background:#fff;border-radius:9px;font-size:10.5px;font-weight:900;padding:3px 7px;color:#33302E;}
.lr-views{margin-left:auto;font-size:11.5px;font-weight:800;color:#5C4A56;}
.lr-card-photo{background:none;border:none;display:block;margin:11px auto 0;cursor:pointer;padding:0;}
.lr-card-photo .vr-avimg,.lr-card-photo .vr-avini{box-shadow:0 6px 16px rgba(60,20,60,.22);}
.lr-card-topic{margin-top:9px;}
.lr-card-host{margin-top:7px;font-size:12.5px;color:#7C6A72;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.lr-card-title{font-size:14.5px;font-weight:900;color:#2A1520;line-height:1.3;min-height:38px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.lr-card-join{margin-top:9px;background:linear-gradient(135deg,#E8405F,#C81E3A);color:#fff;border:none;font-weight:900;font-size:13px;padding:9px 16px;border-radius:19px;cursor:pointer;box-shadow:0 5px 12px rgba(200,30,58,.3);}
.lr-prev-wrap{margin:12px 14px 0;border-radius:20px;overflow:hidden;position:relative;min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;}
.lr-prev{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.lr-prev-off{display:flex;flex-direction:column;align-items:center;gap:9px;padding:26px 14px 8px;font-size:12.5px;font-weight:700;text-shadow:0 1px 3px rgba(0,0,0,.4);}
.lr-prev-btn{position:relative;margin:12px;background:rgba(0,0,0,.45);border:1px solid rgba(255,255,255,.45);color:#fff;font-weight:800;font-size:12.5px;padding:9px 14px;border-radius:19px;cursor:pointer;backdrop-filter:blur(3px);}
.lr-count-chip{background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.3);color:#fff;font-size:12px;font-weight:800;padding:6px 10px;border-radius:15px;flex:none;}
.lr-stage{display:grid;gap:8px;margin-top:13px;flex:none;}
.lr-stage.n1{grid-template-columns:1fr;}
.lr-stage.n1 .lr-tile{height:290px;}
.lr-stage.n4{grid-template-columns:1fr 1fr;}
.lr-stage.n4 .lr-tile{height:158px;}
.lr-stage-more{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px;flex:none;}
.lr-stage-more .lr-tile{height:92px;}
.lr-tile{position:relative;border-radius:17px;overflow:hidden;background:rgba(0,0,0,.3);border:1.5px solid rgba(255,255,255,.25);}
.lr-tile.speaking{box-shadow:0 0 0 3px #F3CD6B,0 0 20px rgba(243,205,107,.75);}
.lr-tile-photo{position:absolute;inset:0;width:100%;height:100%;padding:0;border:none;background:none;cursor:pointer;}
.lr-tile-photo .vr-avimg{width:100%;height:100%;object-fit:cover;border-radius:0;}
.lr-tile-photo video.lk-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.lr-tile-photo .vr-avini{width:100%;height:100%;border-radius:0;font-size:52px;}
.lr-tile-name{position:absolute;left:8px;bottom:8px;background:rgba(0,0,0,.55);color:#fff;font-size:11.5px;font-weight:800;padding:4px 9px;border-radius:12px;display:flex;align-items:center;gap:6px;max-width:85%;}
.lr-tile-badges{position:absolute;right:8px;bottom:8px;display:flex;gap:5px;}
.lr-badge{background:rgba(0,0,0,.55);border-radius:11px;font-size:11px;padding:3px 6px;}
.lr-badge.off{opacity:.75;}
.lr-tile-take{position:absolute;inset:0;width:100%;height:100%;background:none;border:2px dashed rgba(255,255,255,.4);border-radius:17px;color:#fff;font-size:19px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;}
.lr-tile-take span{font-size:11px;font-weight:800;}
.lr-notice{margin-top:11px;background:rgba(10,10,30,.55);border:1px solid rgba(255,255,255,.16);color:#EDEBFF;border-radius:14px;padding:10px 12px;font-size:12.3px;line-height:1.5;display:flex;gap:8px;flex:none;}

/* ============ Fix 129 · equipped bubbles in room feeds ============ */
.rm-bub{display:inline-block;position:relative;padding:4px 10px;border-radius:13px;vertical-align:middle;line-height:1.4;}
.rm-bub.anim{overflow:hidden;color:#FFF;}
.rm-bub.anim .bub-anim{position:absolute;inset:0;display:block;width:100%;height:100%;}
.rm-bub.anim .bub-anim svg{width:100%!important;height:100%!important;display:block;}
.rm-bub.anim video.bub-anim{object-fit:fill;}
.rm-bub .bub-in{position:relative;z-index:1;}
.rm-bub.bub-light{color:#46301F;}
.gvr-msg .rm-bub{margin-left:2px;}

/* ============ Fix 130 · Games VR rooms in the Voice Rooms design ============ */
.vr-room.gvr-room{height:auto;min-height:100%;overflow:visible;}
.gvr-room .gvr-stagegrid{margin-top:13px;flex:none;}
.gvr-mid{margin-top:12px;flex:none;display:flex;flex-direction:column;}
.vr-room.gvr-room .vr-feed{flex:none;height:170px;}
.gvr-discline{text-align:center;font-size:11px;opacity:.75;margin-top:8px;flex:none;}
.gvr-lobbyblock{margin-top:12px;flex:none;}
.gvr-room .vr-strip{flex:none;}

/* ============ Fix 133 · Me profile section at HelloTalk size (fresh redo, step 1: size only) ============ */
.me2-hero{padding:22px 18px 16px;}
.me2-hero-top{gap:15px;}
.me2-ava .pf-lg{width:112px;height:112px;}
.me2-ava .pf-lg .pf-av{width:96px;height:96px;font-size:36px;}
.me2-ava .pt-face.lg{width:96px;height:96px;font-size:36px;}
.me2-ava .av-wrap.lg .av-flag{width:34px;height:34px;font-size:25px;left:-5px;bottom:-5px;}
.me2-ava .av-dot{width:15px;height:15px;right:2px;bottom:3px;}
.me2-name{font-size:27px;}
.me2-btid{font-size:14.5px;padding-top:5px;}
.me2-sub{font-size:14.5px;margin-top:13px;}
.me2-loc{font-size:13.5px;margin-top:4px;}
.me2-about{font-size:15px;margin-top:7px;}
.me2-since{font-size:12.5px;margin-top:5px;}
.me2-half{padding:15px 4px 13px;}
.me2-half b{font-size:21px;}
.me2-social .me2-half b{font-size:21px;}
.me2-half span{font-size:13px;}

/* ============ Fix 134 · My Photo viewer (step 2: tap your picture on Me) ============ */
.me2-ava{cursor:pointer;}
.mpv-view{position:fixed;inset:0;background:#000;z-index:9999;display:flex;flex-direction:column;align-items:center;padding:64px 20px 30px;overflow-y:auto;}
.mpv-back{position:absolute;top:14px;left:12px;width:40px;height:40px;border-radius:50%;border:none;background:rgba(255,255,255,.14);color:#fff;font-size:26px;line-height:1;cursor:pointer;font-family:inherit;}
.mpv-photo{margin-top:4vh;display:flex;justify-content:center;}
.mpv-photo .pf-lg{width:236px;height:236px;}
.mpv-photo .pf-lg .pf-av{width:200px;height:200px;font-size:64px;}
.mpv-photo .pt-face.lg{width:200px;height:200px;font-size:64px;}
.mpv-photo .av-flag{transform:scale(2.1);transform-origin:bottom left;}
.mpv-rows{width:100%;max-width:430px;margin-top:auto;display:flex;flex-direction:column;gap:12px;padding-top:26px;}
.mpv-row{display:flex;align-items:center;gap:13px;width:100%;background:#1C1C1E;border:none;border-radius:16px;padding:17px 16px;color:#fff;font-size:15.5px;font-weight:700;cursor:pointer;font-family:inherit;text-align:left;}
.mpv-row .mpv-ic{font-size:19px;}
.mpv-row .mpv-tx{flex:1;}
.mpv-row .mpv-chev{opacity:.55;font-size:19px;}
.mpv-row.danger{color:#FF9D94;}

/* ================= Fix 139 · official chats + chat management ================= */
.ofc-badge{flex:none;background:linear-gradient(135deg,#12805F,#0B5C40);color:#FFF8DC;font-size:9.5px;font-weight:900;letter-spacing:.4px;border-radius:999px;padding:2.5px 7px;box-shadow:0 2px 6px rgba(11,92,64,.3);}
.ofc-face{background:linear-gradient(140deg,#FFF6DE,#FFE9B8);border:1.5px solid #E3AC33;}
.ofc-face svg{width:62%;height:62%;}
.chr-ics{display:flex;gap:4px;font-size:10.5px;line-height:1;}
.chr-row.sel{background:#FFF6DE;border-color:#E3AC33;}
.cl-check{flex:none;width:22px;height:22px;border-radius:50%;border:2px solid #CBB98A;color:#fff;display:flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:900;background:#fff;}
.cl-check.on{background:linear-gradient(135deg,#12805F,#0B5C40);border-color:#0B5C40;}
.clsel-bar{position:fixed;left:10px;right:10px;bottom:76px;z-index:60;background:#123B2C;color:#FFF6DE;border-radius:18px;padding:10px 12px;display:flex;align-items:center;gap:8px;box-shadow:0 12px 30px rgba(10,50,35,.35);}
.clsel-n{flex:1;font-size:13px;font-weight:800;}
.clsel-btn{flex:none;background:#1E5B44;color:#FFF6DE;border:1px solid #3A7D5F;border-radius:12px;padding:8px 12px;font:inherit;font-size:13px;font-weight:800;cursor:pointer;}
.clsel-btn.danger{background:#7A2318;border-color:#A03A28;}
.ntc-card{background:linear-gradient(150deg,#FFFDF7,#FFF3D6);border:1.5px solid #E3AC33;border-radius:18px;padding:12px 14px;max-width:86%;box-shadow:0 6px 16px rgba(94,64,10,.12);}
.ntc-t{font-size:14.5px;font-weight:900;color:#123B2C;}
.ntc-b{font-size:13.5px;color:#4A4438;margin-top:3px;}
.ntc-join{margin-top:9px;background:linear-gradient(135deg,#FFC93C,#E79A12);color:#3A2700;border:none;border-radius:999px;padding:8px 20px;font:inherit;font-size:13.5px;font-weight:900;cursor:pointer;box-shadow:0 4px 10px rgba(231,154,18,.4);}
.ntc-time{font-size:10.5px;color:#9A8F74;margin-top:7px;text-align:right;}
.ch-readonly{flex:none;margin:0 10px 10px;background:#F3EDDC;color:#6B6249;border:1px dashed #CBB98A;border-radius:14px;padding:12px;text-align:center;font-size:13px;font-weight:700;}

/* ================= Fix 140 · groups, picker, chat settings ================= */
.grp-collage{width:52px;height:52px;border-radius:50%;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;background:#EAF4EE;flex:none;border:1.5px solid #EFDFC0;}
.grp-collage .gc-face{display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:900;color:#0E5E46;overflow:hidden;background:#EAF4EE;}
.grp-collage .gc-face img{width:100%;height:100%;object-fit:cover;}
.grp-collage .gc-face:only-child{grid-column:1 / -1;grid-row:1 / -1;font-size:20px;}
.ch-who .grp-collage{width:38px;height:38px;}
.grp-count{flex:none;font-size:10.5px;font-weight:800;color:#0B5C40;background:#E3F2E9;border-radius:999px;padding:2px 7px;}
.role-chip{flex:none;font-size:9.5px;font-weight:900;letter-spacing:.3px;color:#0B5C40;background:#E3F2E9;border-radius:999px;padding:2px 7px;}
.role-chip.owner{color:#7A5200;background:#FFE9B8;}
.gp-create{flex:none;background:linear-gradient(135deg,#12805F,#0B5C40);color:#FFF8DC;border:none;border-radius:999px;padding:8px 16px;font:inherit;font-size:13.5px;font-weight:900;cursor:pointer;}
.gp-create:disabled{opacity:.4;cursor:default;}
.gp-namewrap{padding:2px 16px 8px;}
.gp-namewrap input{width:100%;box-sizing:border-box;border:1.5px solid #EFDFC0;border-radius:14px;padding:12px 14px;font:inherit;font-size:14.5px;background:#FFFDF7;outline:none;}
.gp-namewrap input:focus{border-color:#12805F;}
.gp-sect{padding:12px 16px 6px;font-size:12px;font-weight:900;letter-spacing:.6px;color:#8A7E5F;text-transform:uppercase;}
.gp-row{display:flex;gap:11px;align-items:center;background:#FFFDF7;border:1px solid #F3E9D2;border-radius:20px;padding:11px 12px;margin:0 12px 9px;cursor:pointer;box-shadow:0 4px 14px rgba(14,94,70,.07);}
.gp-row.sel{border-color:#E3AC33;background:#FFF6DE;}
.gp-check{flex:none;width:24px;height:24px;border-radius:50%;border:2px solid #CBB98A;color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:900;background:#fff;}
.gp-check.on{background:linear-gradient(135deg,#12805F,#0B5C40);border-color:#0B5C40;}
.gm-sys{align-self:center;background:#F1EAD6;color:#6B6249;font-size:11.5px;font-weight:700;border-radius:999px;padding:5px 12px;margin:4px auto;max-width:88%;text-align:center;}
.gm-sender{display:flex;align-items:center;gap:6px;margin:0 0 3px 2px;}
.gm-sender .pt-ava .pt-face{width:22px;height:22px;font-size:10px;}
.gm-sender .grp-collage{width:22px;height:22px;}
.gm-sname{font-size:11.5px;font-weight:800;color:#0B5C40;}
.gm-line{display:flex;align-items:flex-end;gap:6px;}
.gm-time{font-size:10px;color:#9A8F74;flex:none;padding-bottom:2px;}
.gm-notice{flex:none;margin:0 10px 8px;background:linear-gradient(135deg,#FFF3D6,#FFE9B8);border:1px solid #E3AC33;color:#5C4500;border-radius:14px;padding:9px 12px;font-size:13px;font-weight:700;}
.cset-view{padding-bottom:26px;}
.cset-hero{display:flex;align-items:center;gap:13px;margin:6px 12px 14px;background:linear-gradient(150deg,#FFFDF7,#FFF6DE);border:1px solid #EFDFC0;border-radius:20px;padding:14px;}
.cset-herotx{display:flex;flex-direction:column;gap:2px;min-width:0;}
.cset-herotx b{font-size:16.5px;font-weight:900;color:#123B2C;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cset-herotx span{font-size:12.5px;color:#8A7E5F;font-weight:700;}
.cset-row{display:flex;align-items:center;gap:12px;width:calc(100% - 24px);margin:0 12px 8px;background:#FFFDF7;border:1px solid #F3E9D2;border-radius:16px;padding:14px 13px;font:inherit;cursor:pointer;text-align:left;box-shadow:0 3px 10px rgba(14,94,70,.05);}
.cset-row .cset-ic{font-size:17px;width:24px;text-align:center;flex:none;}
.cset-row .cset-tx{flex:1;font-size:14.5px;font-weight:800;color:#26332B;}
.cset-row .cset-val{font-size:12.5px;font-weight:700;color:#8A7E5F;max-width:38%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cset-row .cset-arr{font-size:17px;color:#B4A87F;flex:none;}
.cset-row.danger .cset-tx{color:#B3352B;}
.cset-sw{flex:none;width:46px;height:27px;border-radius:999px;background:#DAD2BA;position:relative;transition:background .15s;}
.cset-sw .cset-knob{position:absolute;top:3px;left:3px;width:21px;height:21px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.25);transition:left .15s;}
.cset-sw.on{background:linear-gradient(135deg,#12805F,#0B5C40);}
.cset-sw.on .cset-knob{left:22px;}
.cs-reslist{padding:6px 12px;}
.cs-res{background:#FFFDF7;border:1px solid #F3E9D2;border-radius:14px;padding:11px 12px;margin-bottom:8px;}
.cs-res-tx{font-size:13.5px;color:#26332B;}
.cs-res-when{font-size:11px;color:#9A8F74;margin-top:3px;}
.cs-files{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;padding:3px;}
.cs-file{width:100%;aspect-ratio:1;object-fit:cover;display:block;cursor:pointer;background:#EFE9D8;}
.tl-view{padding-bottom:26px;}
.tl-row{display:flex;align-items:center;gap:10px;width:calc(100% - 24px);margin:12px 12px 4px;background:#FFFDF7;border:1px solid #F3E9D2;border-radius:18px;padding:15px 14px;font:inherit;cursor:pointer;text-align:left;box-shadow:0 4px 12px rgba(14,94,70,.06);}
.tl-tx{flex:1;display:flex;flex-direction:column;gap:3px;}
.tl-tx b{font-size:15px;font-weight:900;color:#26332B;}
.tl-tx span{font-size:12.5px;color:#8A7E5F;font-weight:600;line-height:1.45;}
.tl-val{flex:none;font-size:14px;font-weight:800;color:#8A7E5F;}

/* ================================================================
   Fix 141 · Compact chat list (owner 2026-10-30, over his HelloTalk
   "Language Talks" reference: our card rows were a size bigger
   everywhere — taller cards, bigger avatars, a level pill on every
   row — so fewer chats fit and the list scanned slowly). Rows are
   now FLAT with a hairline divider, 52px avatars, no card chrome,
   and no level/members pill on the name line (levels live on
   profiles; member counts live in the group thread + settings).
   The ✓ Official pill stays. */
.chr-row{background:transparent;border:none;border-bottom:1px solid #F0E5CB;border-radius:0;box-shadow:none;padding:9px 2px;margin-bottom:0;gap:10px;}
.chr-row.sel{background:#FFF3D6;border-bottom-color:#E3AC33;}
.chr-row .pf{width:52px;height:52px;}
.chr-row .grp-collage{width:52px;height:52px;}
.chr-name{font-size:15.5px;font-weight:800;}
.chr-prev{font-size:13px;margin-top:1px;}

/* ================================================================
   Fix 142 · Professional official announcements (owner 2026-10-30,
   over HelloTalk's official-chat cards: banner + headline + body +
   button, where ours were plain chat bubbles). Admin sends arrive
   as kind 'announce' and render as .annc-card (emerald→gold brand
   banner, type icon, bold title, body); room cards (.ntc-card)
   move to the same white frame; single-line system notices in an
   official chat render as tidy full-width .ofc-line rows. */
.annc-card{width:92%;max-width:560px;background:#fff;border:1px solid #EFDFC0;border-radius:18px;overflow:hidden;box-shadow:0 6px 18px rgba(94,64,10,.10);}
.annc-banner{display:flex;align-items:center;gap:9px;padding:11px 14px;background:linear-gradient(120deg,#0B5C40,#0E5E46 55%,#A87B0A);color:#FFF3D6;}
.annc-ic{width:38px;height:38px;flex:none;border-radius:50%;background:rgba(255,255,255,.94);display:flex;align-items:center;justify-content:center;font-size:19px;box-shadow:0 2px 6px rgba(0,0,0,.18);}
.annc-brand{font-size:11px;font-weight:900;letter-spacing:1.6px;}
.annc-body{padding:12px 14px 10px;}
.annc-t{font-size:16px;font-weight:900;color:var(--ink);line-height:1.3;}
.annc-b{font-size:14px;line-height:1.5;color:var(--ink-soft);margin-top:4px;white-space:pre-wrap;}
.annc-time{font-size:11px;color:var(--ink-mute);text-align:right;margin-top:8px;font-weight:700;}
.ofc-line{width:92%;max-width:560px;background:#FFFDF7;border:1px solid #F0E5CB;border-radius:14px;padding:10px 12px;}
.ofc-b{font-size:14px;line-height:1.5;color:var(--ink);}
.ofc-time{font-size:11px;color:var(--ink-mute);text-align:right;margin-top:4px;font-weight:700;}
.ntc-card{background:#fff;border:1.5px solid #E3AC33;width:92%;max-width:560px;}

/* Fix 143 · Announcement banner image (Admin-uploaded, optional). */
.annc-img{display:block;width:100%;height:auto;max-height:340px;object-fit:cover;background:#F7EFDB;}

/* ================================================================
   Fix 144 · Chat thread layout (owner 2026-10-30, over his
   HelloTalk thread): avatars beside incoming messages, date-time
   separators, Sent / Read under my messages, one-tap translate
   beside incoming text, and a two-row composer. */
.ch-sep{align-self:center;background:#fff;border:1px solid #F0E5CB;color:var(--ink-mute);font-size:11px;font-weight:800;padding:3px 11px;border-radius:999px;margin:5px 0 1px;box-shadow:0 1px 3px rgba(94,64,10,.05);}
.ch-status{align-self:flex-end;font-size:11px;font-weight:800;color:#6C5CE7;margin-top:-3px;padding-right:2px;}
.ch-row{display:flex;gap:8px;align-items:flex-start;}
.ch-mava{flex:none;margin-top:2px;}
.ch-mcol{flex:1;min-width:0;}
.ch-brow{display:flex;align-items:flex-start;gap:7px;max-width:100%;}
.ch-msg.me .ch-brow{justify-content:flex-end;}
.ch-trbtn{flex:none;width:34px;height:34px;border-radius:50%;border:1.5px solid #E9DFC6;background:#FFFDF7;color:var(--ink-soft);font-size:11px;font-weight:900;cursor:pointer;margin-top:3px;padding:0;}
.ch-bar.dm2{flex-direction:column;align-items:stretch;border-radius:26px;gap:7px;}
.ch-bar-row{display:flex;gap:8px;align-items:center;}
.ch-tools{display:flex;justify-content:space-around;align-items:center;}

/* Fix 145 · the Fix 144 bubble row must take the full message
   width — as a shrink-wrapped flex row, a short message in an
   animated bubble collapsed to a few letters per line on phones
   (owner's screenshot: "hmm" stacked h/m/m). */
.ch-brow{width:100%;}

/* Fix 149 · Events VR placeholder screen */
.evr-body{padding:16px 16px 28px;display:flex;flex-direction:column;gap:12px;}
.evr-hero{background:linear-gradient(150deg,#FF9A5A,#F15B8A);border-radius:22px;padding:26px 20px 22px;text-align:center;color:#fff;box-shadow:0 12px 26px rgba(241,91,138,.28);}
.evr-hero-ic{font-size:46px;display:block;}
.evr-hero-t{font-size:23px;font-weight:900;margin-top:6px;}
.evr-hero-s{font-size:13px;opacity:.92;margin-top:5px;line-height:1.45;}
.evr-soon{display:inline-block;margin-top:13px;background:rgba(255,255,255,.22);border:1.5px solid rgba(255,255,255,.75);color:#fff;font-size:10.5px;font-weight:900;letter-spacing:.14em;border-radius:999px;padding:5px 12px;}
.evr-card{background:#fff;border:1px solid #F3E7CE;border-radius:18px;padding:15px 16px;display:flex;flex-direction:column;gap:4px;box-shadow:0 4px 14px rgba(120,84,0,.05);}
.evr-card b{font-size:14.5px;color:var(--ink);}
.evr-card span{font-size:12.5px;color:var(--ink-soft);line-height:1.5;}
.evr-note{text-align:center;font-size:12.5px;color:var(--ink-soft);padding:4px 10px;line-height:1.55;}

/* Fix 150 · Moments: room cards, translate slot, share sheet,
   quick-reply chips, full-width single photo (owner 2026-10-30). */
.mo2-trslot:empty{display:none;}
.mo2-trslot .ch-tr{border-top:none;margin-top:9px;background:#F4F1FF;border-radius:12px;padding:9px 11px;cursor:pointer;}
.mo2-acts-r{margin-left:auto;display:flex;gap:2px;align-items:center;}
.mo2-room{display:flex;align-items:center;gap:11px;width:100%;text-align:left;margin-top:11px;border:1.5px solid #DCD2FF;background:linear-gradient(120deg,#F1EDFF,#FFF3E2);border-radius:18px;padding:12px 13px;cursor:pointer;font:inherit;}
.mo2-room-ic{width:44px;height:44px;flex:none;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;font-size:21px;box-shadow:0 3px 8px rgba(108,92,231,.18);}
.mo2-room-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.mo2-room-tx b{font-size:14.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mo2-room-tx span{font-size:12px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mo2-room-join{flex:none;background:#6C5CE7;color:#fff;font-weight:900;font-size:12.5px;border-radius:999px;padding:8px 14px;}
.mo2-room.ended{border-color:#E8E2D4;background:#F7F3E9;cursor:default;}
.mo2-room.ended .mo2-room-ic{box-shadow:none;filter:grayscale(.6);}
.mo2-qr{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px;}
.mo2-qrchip{border:1.5px solid #E4DCFF;background:#F6F3FF;color:#5B4BC4;font-size:12.5px;font-weight:700;border-radius:999px;padding:7px 12px;cursor:pointer;font:inherit;}
.mo2-end{height:20px;}
.mshare-list{display:flex;flex-direction:column;max-height:46vh;overflow:auto;}
.mshare-row{display:flex;align-items:center;gap:10px;width:100%;background:none;border:none;border-bottom:1px solid #F3EDDA;padding:9px 2px;cursor:pointer;font:inherit;text-align:left;}
.mshare-nm{flex:1;font-weight:700;color:var(--ink);font-size:14.5px;}
.mshare-go{color:#0B5C40;font-weight:900;font-size:12.5px;}
.ch-momcard{display:flex;align-items:center;gap:10px;width:248px;max-width:78vw;text-align:left;background:#fff;border:1.5px solid #EFE6C8;border-radius:16px;padding:10px 12px;cursor:pointer;font:inherit;}
.ch-msg.me .ch-momcard{background:#FFF8E6;}
.ch-momcard-ic{font-size:20px;flex:none;}
.ch-momcard-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;}
.ch-momcard-tx b{font-size:13.5px;color:var(--ink);}
.ch-momcard-tx span{font-size:12px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ch-momcard-t{flex:none;font-size:10.5px;color:var(--ink-mute);}
.ch-momcard.gone{display:flex;width:248px;max-width:78vw;background:#F7F3E9;border:1.5px dashed #E0D6B8;border-radius:16px;padding:10px 12px;font-size:12.5px;color:var(--ink-soft);}

/* Fix 164 — VIP Plans, Board v1 (owner-approved 2026-10-31):
   emerald Royale card, sheen + crown motion, meter, plan grid. */
@keyframes vip2Rise{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:translateY(0);}}
.vip2-rise{opacity:0;animation:vip2Rise .5s cubic-bezier(.22,.9,.3,1) forwards;animation-delay:calc(var(--i,0)*60ms);}
@keyframes vip2Sheen{0%{transform:translateX(-130%) skewX(-18deg);}55%,100%{transform:translateX(240%) skewX(-18deg);}}
.vip2-sheen{position:relative;overflow:hidden;}
.vip2-sheen::after{content:"";position:absolute;top:0;bottom:0;left:0;width:45%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:vip2Sheen 4.2s ease-in-out infinite;pointer-events:none;}
@keyframes vip2Bob{0%,100%{transform:rotate(-4deg) translateY(0);}50%{transform:rotate(4deg) translateY(-3px);}}
.vip2-card{border-radius:26px;padding:22px;color:#FFF6DC;background:linear-gradient(150deg,#0E6E4B,#08402C 70%,#062E20);border:1.5px solid #E9B64C;box-shadow:0 18px 34px rgba(8,64,44,.35);margin-top:14px;}
.vip2-brand{font-size:15px;letter-spacing:3px;font-weight:800;color:#F6D67C;}
.vip2-crown{font-size:34px;line-height:1;display:inline-block;animation:vip2Bob 3.4s ease-in-out infinite;}
.vip2-word{font-size:30px;font-weight:800;letter-spacing:6px;margin-top:8px;}
.vip2-pill{background:rgba(246,214,124,.16);border:1px solid rgba(246,214,124,.55);color:#F6D67C;font-size:11px;font-weight:800;padding:6px 11px;border-radius:99px;white-space:nowrap;}
.vip2-meter{background:#fff;border:1.5px solid var(--border);border-radius:22px;box-shadow:0 10px 24px rgba(35,48,38,.1);padding:16px;margin-top:14px;}
.vip2-track{height:10px;border-radius:99px;background:#F1E8CF;overflow:hidden;margin-top:11px;}
@keyframes vip2Fill{from{width:0;}}
.vip2-fill{height:100%;border-radius:99px;background:linear-gradient(135deg,#F6D67C,#E9B64C 45%,#C98F2B);animation:vip2Fill 1.1s .3s cubic-bezier(.22,.9,.3,1) both;}
.vip2-plans{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px;}
.vip2-plan{background:#fff;border:1.5px solid var(--border);border-radius:22px;box-shadow:0 10px 24px rgba(35,48,38,.1);padding:16px;position:relative;}
.vip2-plan.best{border:2px solid var(--gold);background:linear-gradient(160deg,#FFFBEC,#FFF3D1);overflow:hidden;}
.vip2-ribbon{position:absolute;top:12px;right:-32px;transform:rotate(38deg);background:linear-gradient(135deg,#F6D67C,#C98F2B);color:#3A2A05;font-size:9.5px;font-weight:800;letter-spacing:1px;padding:4px 34px;}
.vip2-dur{display:inline-block;padding:5px 10px;font-size:11px;font-weight:800;background:#FFF6DC;border:1.5px solid #F3E3B3;color:#8A6414;border-radius:999px;text-transform:uppercase;letter-spacing:.4px;}
.vip2-price{font-size:25px;font-weight:800;margin-top:10px;color:var(--ink);}
.vip2-price span{font-size:14px;color:var(--ink-soft);font-weight:700;}
.vip2-perday{font-size:12px;color:var(--ink-mute);font-weight:600;margin-top:2px;}
.vip2-buy{width:100%;margin-top:12px;padding:11px;border:none;border-radius:16px;background:linear-gradient(135deg,#F6D67C,#E9B64C 45%,#C98F2B);color:#3A2A05;font-size:15px;font-weight:800;cursor:pointer;box-shadow:0 8px 18px rgba(217,164,65,.35);font-family:inherit;}
.vip2-buy:active{transform:scale(.97);}
.vip2-perk{display:flex;gap:12px;align-items:center;}
.vip2-orb{width:40px;height:40px;border-radius:13px;flex:none;display:flex;align-items:center;justify-content:center;font-size:19px;color:#fff;box-shadow:inset 0 2px 3px rgba(255,255,255,.5),inset 0 -3px 6px rgba(0,0,0,.15),0 6px 12px rgba(35,48,38,.16);}
.vip2-perk b{display:block;font-size:14px;color:var(--ink);}
/* Fix 176: was `.vip2-perk span` — it also matched the orb
   span and shrank its emoji into the corner. Text spans only. */
.vip2-ptx{display:block;}
.vip2-ptx>span{display:block;font-size:12px;color:var(--ink-soft);font-weight:600;margin-top:1px;}

/* Fix 165 — Home dashboard in the Board v1 language (owner-
   approved 2026-10-31): shining hero, jewel-gloss category tiles
   with a staggered rise-in, deeper card depth, press feedback.
   Layout, icons, labels and flows are unchanged. */
.dash-hero{animation:vip2Rise .5s cubic-bezier(.22,.9,.3,1) both;}
.dash-hero::after{content:"";position:absolute;top:0;bottom:0;left:0;width:45%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);animation:vip2Sheen 5s ease-in-out infinite;pointer-events:none;}
.dash-hero-cta{background:linear-gradient(135deg,#F6D67C,#E9B64C 45%,#C98F2B);}
.dash-sect{letter-spacing:.2px;}
.dash-cats .dash-cat{border:1.5px solid var(--border);border-radius:20px;box-shadow:0 10px 24px rgba(35,48,38,.10),0 2px 6px rgba(35,48,38,.06);animation:vip2Rise .5s cubic-bezier(.22,.9,.3,1) both;transition:transform .12s ease;}
.dash-cats .dash-cat:active{transform:scale(.96);}
.dash-cats .dash-cat:nth-child(1){animation-delay:.04s;} .dash-cats .dash-cat:nth-child(2){animation-delay:.09s;}
.dash-cats .dash-cat:nth-child(3){animation-delay:.14s;} .dash-cats .dash-cat:nth-child(4){animation-delay:.19s;}
.dash-cats .dash-cat:nth-child(5){animation-delay:.24s;} .dash-cats .dash-cat:nth-child(6){animation-delay:.29s;}
.dash-cats .dash-cat:nth-child(7){animation-delay:.34s;} .dash-cats .dash-cat:nth-child(8){animation-delay:.39s;}
.dash-cats .dash-cat:nth-child(9){animation-delay:.44s;} .dash-cats .dash-cat:nth-child(10){animation-delay:.49s;}
.dash-cats .dash-cat:nth-child(11){animation-delay:.54s;} .dash-cats .dash-cat:nth-child(12){animation-delay:.59s;}
.dash-orb{box-shadow:inset 0 2px 3px rgba(255,255,255,.5),inset 0 -3px 6px rgba(0,0,0,.15),0 6px 12px rgba(35,48,38,.16);}
.dash-icn{box-shadow:inset 0 2px 3px rgba(255,255,255,.5),0 6px 12px rgba(35,48,38,.16);}
.dash-bdg.gold{background:linear-gradient(135deg,#F6D67C,#E9B64C);border:1px solid #C98F2B;color:#4A3200;}
.streak-banner{box-shadow:0 10px 24px rgba(35,48,38,.10),0 2px 6px rgba(35,48,38,.06);animation:vip2Rise .5s .12s cubic-bezier(.22,.9,.3,1) both;}
.stk-flame{display:inline-block;animation:vip2Bob 3.4s ease-in-out infinite;}
.dash-feats>*{border:1.5px solid var(--border);box-shadow:0 10px 24px rgba(35,48,38,.10),0 2px 6px rgba(35,48,38,.06);animation:vip2Rise .5s .62s cubic-bezier(.22,.9,.3,1) both;}
.dash-feats>*:nth-child(2){animation-delay:.7s;}
.dash-feats>*:active{transform:scale(.98);}

/* Fix 166 — Chat list in the Board v1 language (owner-approved
   2026-10-31): deeper row depth, gold-tinted official rows with a
   gold verified badge, pill search with soft shadow, glossy
   avatars. Row layout, order and behaviour are unchanged. */
.chr-row{border:1.5px solid var(--border);box-shadow:0 10px 24px rgba(35,48,38,.10),0 2px 6px rgba(35,48,38,.06);}
.chr-row:has(.ofc-badge){background:linear-gradient(160deg,#FFF8E8,#FFF3D6);border-color:#F3E3B3;}
.ofc-badge{background:linear-gradient(135deg,#F6D67C,#E9B64C 45%,#C98F2B);color:#3A2A05;box-shadow:0 3px 8px rgba(217,164,65,.4);}
.search{border-radius:999px;border-color:var(--border);box-shadow:0 10px 24px rgba(35,48,38,.10),0 2px 6px rgba(35,48,38,.06);}
.chr-row .pt-ava .pf,.chr-row .pt-ava .pf-av{box-shadow:0 4px 10px rgba(35,48,38,.16);}
.grp-collage .gc-face{box-shadow:0 3px 8px rgba(35,48,38,.16);}
.chr-badge{box-shadow:inset 0 1px 2px rgba(255,255,255,.5),0 3px 7px rgba(232,93,4,.35);}
#ch-rows .ai-big{border:1.5px solid var(--border);box-shadow:0 10px 24px rgba(35,48,38,.10),0 2px 6px rgba(35,48,38,.06);}

/* Fix 167 — Partners in the Board v1 language (owner-approved
   2026-10-31): shining emerald hero, deeper glossy cards, gold
   lock note. The restored design (blurred teaser cards + lock
   note, Fix 162) is unchanged in structure and content. */
.pt-hero{box-shadow:0 18px 34px rgba(8,64,44,.35);}
.pt-hero::before{content:"";position:absolute;top:0;bottom:0;left:0;width:45%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);animation:vip2Sheen 5.5s ease-in-out infinite;pointer-events:none;z-index:0;}
.pt-card{border:1.5px solid var(--border);box-shadow:0 10px 24px rgba(35,48,38,.10),0 2px 6px rgba(35,48,38,.06);}
.pt-card .pt-ava .pf,.pt-card .pt-ava .pf-av{box-shadow:0 4px 10px rgba(35,48,38,.16);}
.pt-wave{background:linear-gradient(135deg,#0E6E4B,#08402C);box-shadow:inset 0 1px 2px rgba(255,255,255,.35),0 6px 14px rgba(11,92,64,.3);}
.pt-locknote{background:linear-gradient(135deg,#FFF6DC,#FBE9B7);border:1.5px solid var(--gold);box-shadow:0 10px 20px rgba(217,164,65,.3);color:#7A5410;}
.pchip.active{background:linear-gradient(150deg,#0E6E4B,#08402C);border-color:transparent;color:#fff;box-shadow:0 6px 14px rgba(11,92,64,.28);}
.pt-banner{box-shadow:0 12px 26px rgba(8,64,44,.3);}

/* Fix 168 — Voice + Live Rooms in the Board v1 language (owner-
   approved 2026-10-31): deeper cards, pulsing LIVE pill, gold
   Special entry badge, emerald Join. Card structure, themes and
   behaviour are unchanged. */
@keyframes vip2Pulse{0%{box-shadow:0 0 0 0 rgba(255,90,90,.5);}70%{box-shadow:0 0 0 7px rgba(255,90,90,0);}100%{box-shadow:0 0 0 0 rgba(255,90,90,0);}}
.vr-card{border:1.5px solid var(--border);box-shadow:0 10px 24px rgba(35,48,38,.10),0 2px 6px rgba(35,48,38,.06);}
.vr-band{box-shadow:inset 0 1px 0 rgba(255,255,255,.25),inset 0 -8px 16px rgba(0,0,0,.12);}
.vr-live{background:linear-gradient(135deg,#FF6B6B,#E45050);color:#fff;animation:vip2Pulse 1.6s infinite;}
.vr-tag.coin{background:linear-gradient(135deg,#F6D67C,#E9B64C);border:1px solid #C98F2B;color:#3A2A05;}
.vr-join{background:linear-gradient(135deg,#0E6E4B,#08402C);box-shadow:inset 0 1px 2px rgba(255,255,255,.35),0 6px 14px rgba(11,92,64,.3);}
.vr-chip.on{background:linear-gradient(150deg,#0E6E4B,#08402C);color:#fff;border-color:transparent;box-shadow:0 6px 14px rgba(11,92,64,.28);}
.vr-mine{background:linear-gradient(135deg,#FFF6DC,#FBE9B7);border:1.5px solid var(--gold);box-shadow:0 10px 20px rgba(217,164,65,.3);}
.lr-card{border:1.5px solid rgba(255,255,255,.7);box-shadow:0 10px 24px rgba(35,48,38,.12),0 2px 6px rgba(35,48,38,.06);}
.lr-card-join{box-shadow:inset 0 1px 2px rgba(255,255,255,.4),0 6px 14px rgba(200,30,58,.32);}

/* Fix 169 — Moments + Me in the Board v1 language (owner-
   approved 2026-10-31): gradient room-share cards with emerald
   Join, deeper composer and profile cards; Me gains board depth,
   jewel list-row icons and glossy tiles. Structures unchanged —
   the Me hero keeps the member's own banner art. */
.mo2-room{background:linear-gradient(120deg,#EDF6F0,#FFF6DC);border:1.5px solid #E9D9A8;box-shadow:0 10px 24px rgba(35,48,38,.10),0 2px 6px rgba(35,48,38,.06);}
.mo2-room-join{background:linear-gradient(135deg,#0E6E4B,#08402C);box-shadow:inset 0 1px 2px rgba(255,255,255,.35),0 6px 14px rgba(11,92,64,.3);}
.mo2-room-ic{box-shadow:0 4px 10px rgba(217,164,65,.35);}
.mo-entry{box-shadow:0 10px 24px rgba(35,48,38,.10),0 2px 6px rgba(35,48,38,.06);border-color:var(--border);}
.mo-card{border:1.5px solid var(--border);box-shadow:0 10px 24px rgba(35,48,38,.10),0 2px 6px rgba(35,48,38,.06);}
.me2-hero{box-shadow:0 10px 24px rgba(35,48,38,.08);}
.me2-btid{background:#FFF6DC;border:1px solid #F3E3B3;}
.me2-stats{box-shadow:0 10px 24px rgba(35,48,38,.10),0 2px 6px rgba(35,48,38,.06);}
.me2-half,.me2-vhalf{box-shadow:0 8px 18px rgba(35,48,38,.08);}
.me2-vic{box-shadow:inset 0 2px 3px rgba(255,255,255,.5),0 4px 10px rgba(35,48,38,.16);}
.me2-tile{box-shadow:inset 0 2px 3px rgba(255,255,255,.5),inset 0 -3px 6px rgba(0,0,0,.08),0 8px 18px rgba(35,48,38,.10);transition:transform .12s ease;}
.me2-tile:active{transform:scale(.97);}
.me2-ic{width:40px;height:40px;border-radius:13px;display:flex;align-items:center;justify-content:center;background:var(--green-tint);box-shadow:inset 0 2px 3px rgba(255,255,255,.6),0 4px 10px rgba(35,48,38,.10);}
.me2-lrow:nth-child(odd) .me2-ic{background:#FFF3D6;}

/* Fix 170 — Board v1 language, phase two (owner: "Go ahead",
   2026-10-31): IELTS, Store, Wallet, Games VR + AI hub rows,
   Settings and the chat thread take the same depth, gloss and
   gold/emerald gradients. Structures and flows unchanged. */
.ai-big{border:1.5px solid var(--border);box-shadow:0 10px 24px rgba(35,48,38,.10),0 2px 6px rgba(35,48,38,.06);}
.ai-orb{box-shadow:inset 0 2px 3px rgba(255,255,255,.5),inset 0 -3px 6px rgba(0,0,0,.15),0 6px 12px rgba(35,48,38,.16);}
.who-locked{border:1.5px solid var(--gold);box-shadow:0 10px 24px rgba(217,164,65,.25),0 2px 6px rgba(35,48,38,.06);}
.ix-bandcard{position:relative;overflow:hidden;box-shadow:0 18px 34px rgba(8,64,44,.35);}
.ix-bandcard::after{content:"";position:absolute;top:0;bottom:0;left:0;width:45%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);animation:vip2Sheen 5.5s ease-in-out infinite;pointer-events:none;}
.shop-card{border:1.5px solid var(--border);box-shadow:0 10px 24px rgba(35,48,38,.10),0 2px 6px rgba(35,48,38,.06);transition:transform .12s ease;}
.shop-card:active{transform:scale(.97);}
.wal-hero{position:relative;overflow:hidden;box-shadow:0 18px 34px rgba(8,64,44,.35);}
.wal-hero::after{content:"";position:absolute;top:0;bottom:0;left:0;width:45%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);animation:vip2Sheen 6s ease-in-out infinite;pointer-events:none;}
.wal-card{border:1.5px solid var(--border);box-shadow:0 10px 24px rgba(35,48,38,.10),0 2px 6px rgba(35,48,38,.06);}
.cm-bar{border-top:1.5px solid var(--border);box-shadow:0 -6px 18px rgba(35,48,38,.08);}
.set-group .card,.set-group.card{border:1.5px solid var(--border);box-shadow:0 10px 24px rgba(35,48,38,.10),0 2px 6px rgba(35,48,38,.06);}

/* Fix 171 — Buy Coins screen: gold balance hero, selectable
   pack grid (gold edge on the chosen pack), full-width gold Buy.
   In the Board v1 language. */
.coins-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#FFDF6B,#FFC93C 55%,#F5A623);border-radius:26px;padding:18px;margin-bottom:14px;box-shadow:0 16px 32px rgba(217,164,65,.4);color:#4A3200;}
.coins-hero-t{font-size:15px;font-weight:900;}
.coins-hero-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;}
.coins-hero-bal{display:flex;align-items:center;gap:8px;font-size:30px;font-weight:900;}
.coins-hero-cur{font-size:12px;font-weight:900;background:rgba(255,255,255,.55);border-radius:999px;padding:5px 10px;}
.coins-hero-s{font-size:12px;font-weight:700;color:#6B4E00;margin-top:8px;}
.coins-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:6px;}
.coins-pack{display:flex;flex-direction:column;align-items:center;gap:4px;background:#FFFDF7;border:2px solid var(--border);border-radius:20px;padding:14px 6px 12px;cursor:pointer;font:inherit;box-shadow:0 8px 18px rgba(35,48,38,.08);transition:transform .12s ease;}
.coins-pack:active{transform:scale(.96);}
.coins-pack.on{border-color:var(--gold);box-shadow:0 10px 24px rgba(217,164,65,.35);}
.coins-amt{font-size:19px;font-weight:900;color:var(--ink);}
.coins-price{font-size:12.5px;font-weight:900;color:#8A6D1F;background:#FFF3D6;border-radius:999px;padding:4px 11px;}
.coins-buy{width:100%;margin-top:14px;background:linear-gradient(135deg,#FFC93C,#F2993B);color:#4A3200;font-size:16.5px;font-weight:900;border-radius:999px;padding:15px;box-shadow:0 12px 26px rgba(242,153,59,.45);}
.coins-walbuy{width:100%;margin-bottom:11px;background:linear-gradient(135deg,#FFC93C,#F2993B);color:#4A3200;font-weight:900;border-radius:16px;padding:13px;box-shadow:0 10px 22px rgba(242,153,59,.4);}

/* Fix 174 — Points & Cash / Payment Settings premium finish:
   inset padded cards, the app's .input field component, tidy
   action rows and a proper OTP code field. */
.pts-card{padding:17px 16px 15px;margin:0 14px 12px;}
.pts-t{font-size:16px;font-weight:900;color:var(--ink);margin-bottom:7px;}
.pts-note{font-size:13.5px;line-height:1.55;color:var(--ink-soft);margin:0 0 12px;}
.pts-row{display:flex;gap:9px;align-items:stretch;}
.pts-field{flex:1;min-width:0;}
.pts-go{flex:none;padding:0 20px;border-radius:13px;}
.pts-hint{font-size:12.5px;font-weight:700;color:var(--ink-mute);margin-top:8px;min-height:15px;}
.otp-field input{text-align:center;font-size:21px !important;font-weight:800;letter-spacing:9px;}

/* Fix 175 — .btn is width:100% by design; inside the Points
   action rows it must size to its label or it crushes the
   field and overflows the card (owner's phone screenshot). */
.pts-row .pts-go{width:auto;flex:0 0 auto;}
.pts-field{flex:1 1 0;min-width:0;}

/* Fix 177 — inline error line inside the OTP sheet. */
.otp-err{color:#C0392B;font-weight:700;font-size:13.5px;text-align:center;min-height:17px;margin:-4px 0 9px;}

/* Fix 179 — My Languages sets: padded cards, language chips with
   VIP remove buttons, add buttons, picker list scroll. */
.ls-card{padding:16px;margin:0 14px 12px;}
.ls-trow{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px;}
.ls-title{font-size:16px;font-weight:900;color:var(--ink);}
.ls-count{font-size:12px;font-weight:800;color:#8A7B63;background:#FBF3DF;border:1px solid #EFDFBA;border-radius:999px;padding:3px 10px;}
.ls-chips{display:flex;flex-wrap:wrap;gap:8px;}
.ls-chip{display:inline-flex;align-items:center;gap:7px;background:linear-gradient(150deg,#FFFFFF,#FFF6E3);border:1.5px solid #EBD9AC;border-radius:999px;padding:8px 13px;font-size:13.5px;font-weight:800;color:var(--ink);box-shadow:0 4px 10px rgba(160,120,30,.12);}
.ls-chip b{color:#B07E10;font-size:12px;letter-spacing:.4px;}
.ls-x{border:none;background:#F6E7C8;color:#8A6410;width:19px;height:19px;border-radius:50%;font-size:10px;font-weight:900;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;}
.ls-none{font-size:13px;color:var(--ink-mute);font-weight:700;}
.ls-add{margin-top:12px;width:100%;border:1.5px dashed #D9B95C;background:#FFFBF0;color:#8A6410;font-weight:900;font-size:13.5px;border-radius:12px;padding:11px;cursor:pointer;font-family:inherit;}
.lsp-list{max-height:52dvh;overflow-y:auto;}

/* Fix 180 · quantity stepper, gift stats entry, room gift feed */
.qty-row{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #F1E7D3;border-radius:14px;padding:8px 12px;margin-top:10px;}
.qty-lab{font-weight:800;font-size:13.5px;color:var(--ink);}
.qty-step{display:flex;align-items:center;gap:2px;background:#FFF6E9;border:1.5px solid #F0DCAE;border-radius:999px;padding:2px;}
.qty-step button{width:34px;height:34px;border:none;border-radius:50%;background:#fff;font-size:19px;font-weight:900;color:#0E5E46;box-shadow:0 1px 4px rgba(14,94,70,.15);cursor:pointer;}
.qty-step button:disabled{opacity:.35;box-shadow:none;}
.qty-step b{min-width:30px;text-align:center;font-size:15px;}
.qty-max{margin-left:auto;font-size:11.5px;color:var(--ink-mute);font-weight:700;}
.qty-short{margin-top:8px;font-size:12.5px;font-weight:700;color:#9a6a12;background:#FFF3D6;border:1.5px solid #F0DCAE;border-radius:12px;padding:8px 10px;text-align:center;}
.qty-buy{border:none;background:none;color:#0E5E46;font-weight:900;font-size:12.5px;text-decoration:underline;cursor:pointer;padding:0;}
.gp-stats-btn{display:flex;width:100%;align-items:center;justify-content:center;background:#fff;border:1.5px solid #F0DCAE;border-radius:13px;padding:10px;font-weight:800;font-size:13.5px;color:#0E5E46;margin-bottom:12px;cursor:pointer;}
.gift-feed{display:flex;gap:6px;overflow-x:auto;padding:8px 2px 2px;scrollbar-width:none;}
.gift-feed::-webkit-scrollbar{display:none;}
.gf-t{flex:0 0 auto;font-size:11.5px;font-weight:900;color:#9a6a12;align-self:center;}
.gf-chip{flex:0 0 auto;font-size:11.5px;font-weight:700;background:#FFF6E9;border:1px solid #F0DCAE;border-radius:999px;padding:4px 9px;color:var(--ink);white-space:nowrap;}
.gst-h{font-size:13px;font-weight:900;color:var(--ink);margin:14px 2px 8px;}

/* Fix 181 · Voice Room roles + raised hands */
.vr-host-tag.co{background:#0E5E46;color:#fff;}
.vr-host-tag.mod{background:#7C5CBF;color:#fff;}
.vr-lis-i{position:relative;}
.vr-lis-hand{position:absolute;right:-4px;top:-6px;font-size:11px;}
.vr-lis-role{position:absolute;left:-4px;top:-6px;font-size:10px;}
.vr-hands{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:7px 2px 1px;}
.vr-hands-t{font-size:12px;font-weight:900;color:#9a6a12;}
.vr-hands.mine .vr-hands-t{color:#0E5E46;}
.vr-hand-chip{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:800;background:#FFF6E9;border:1.5px solid #F0DCAE;border-radius:999px;padding:3px 4px 3px 10px;color:var(--ink);}
.vr-hand-chip button{border:none;background:#0E5E46;color:#fff;font-size:11px;font-weight:900;border-radius:999px;padding:4px 9px;cursor:pointer;}

/* Fix 182 · Games VR — ready checks, spectators, records */
.gvr-ready{display:inline-block;font-size:10px;font-weight:900;padding:2px 8px;border-radius:999px;margin-top:3px;}
.gvr-ready.ok{background:#DFF5E9;color:#0E5E46;}
.gvr-ready.wait{background:#FFF1D6;color:#9a6a12;}
.gvr-ready.host{background:#F6E3B4;color:#7a5410;}
.gvr-create-cta.gvr-ready-on{background:#fff;color:#0E5E46;border:2px solid #0E5E46;}
.gvr-watch{flex:none;background:#fff;color:#0E5E46;border:1.5px solid #BFE3D2;border-radius:999px;padding:8px 11px;font-weight:900;font-size:12px;cursor:pointer;margin-right:6px;}
.gvr-watch.live{border-color:#F3B8B8;color:#B3352B;}
.gvr-records{display:block;width:calc(100% - 28px);margin:14px auto 0;background:#FFF6E9;border:1.5px solid #F0DCAE;color:#7a5410;font-weight:900;font-size:13.5px;border-radius:14px;padding:12px;cursor:pointer;}
.gvr-spec-banner{margin:8px 14px 0;background:#EEF6FF;border:1.5px solid #C9DFF7;color:#24507E;font-size:12.5px;font-weight:700;border-radius:12px;padding:9px 12px;}
.gh-body{padding:6px 14px 20px;}
.gst-tabs{display:flex;gap:8px;margin:8px 0 4px;}
.gst-tabs button{flex:1;border:1.5px solid #E7DCC3;background:#fff;color:var(--ink-soft);font-weight:900;font-size:13px;border-radius:999px;padding:9px;cursor:pointer;}
.gst-tabs button.on{background:#0E5E46;border-color:#0E5E46;color:#fff;}
.gh-chips{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 4px;}
.gh-chip{border:1.5px solid #E7DCC3;background:#fff;color:var(--ink-soft);font-weight:800;font-size:12px;border-radius:999px;padding:6px 11px;cursor:pointer;}
.gh-chip.on{background:#B8860B;border-color:#B8860B;color:#fff;}
.gh-row{display:flex;align-items:center;gap:10px;background:#fff;border:1.5px solid #F0E7D2;border-radius:14px;padding:10px 12px;margin-top:8px;}
.gh-row.me{border-color:#0E5E46;background:#F2FBF6;}
.gh-rank{font-size:16px;font-weight:900;min-width:26px;text-align:center;}
.gvr-sava.sm{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:14px;color:#fff;overflow:hidden;flex:none;}
.gvr-sava.sm img{width:100%;height:100%;object-fit:cover;}
.gh-info{flex:1;min-width:0;}
.gh-info b{display:block;font-size:13.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.gh-info span{font-size:11.5px;color:var(--ink-mute);font-weight:700;}
.gh-dum{font-weight:900;color:#B8860B;font-size:13px;flex:none;}

/* Fix 183 · Games cosmetics — Clash card backs */
.cc-card.back.cc-back-classic{background:linear-gradient(155deg,#0B4A38,#06231C);}
.cc-card.back.cc-back-royal{background:linear-gradient(155deg,#B8860B,#6E4E05);}
.cc-card.back.cc-back-berry{background:linear-gradient(155deg,#C22A5B,#5E1140);}
.cc-card.back.cc-back-ocean{background:linear-gradient(155deg,#1D6FD1,#0B2B5B);}
.cc-card.back.cc-back-sunset{background:linear-gradient(155deg,#F2712C,#8F1D4E);}
.cc-fan{display:inline-flex;margin:0 2px;}
.cc-mini-back{display:inline-block;width:11px;height:15px;border-radius:2.5px;margin-left:-5px;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.8),0 1px 2px rgba(0,0,0,.3);background:linear-gradient(155deg,#0B4A38,#06231C);}
.cc-mini-back:first-child{margin-left:0;}
.cc-mini-back.cc-back-royal{background:linear-gradient(155deg,#B8860B,#6E4E05);}
.cc-mini-back.cc-back-berry{background:linear-gradient(155deg,#C22A5B,#5E1140);}
.cc-mini-back.cc-back-ocean{background:linear-gradient(155deg,#1D6FD1,#0B2B5B);}
.cc-mini-back.cc-back-sunset{background:linear-gradient(155deg,#F2712C,#8F1D4E);}
.cc-mini-back.lg{width:20px;height:28px;border-radius:4px;margin-left:0;}
.cc-backrow{display:flex;align-items:center;gap:7px;justify-content:center;margin-top:10px;flex-wrap:wrap;}
.cc-backlbl{font-size:11.5px;font-weight:900;color:rgba(255,255,255,.85);letter-spacing:.4px;}
.cc-backpick{background:rgba(255,255,255,.08);border:2px solid transparent;border-radius:9px;padding:5px 7px;cursor:pointer;}
.cc-backpick.on{border-color:#FFD968;background:rgba(255,217,104,.14);}

/* Fix 186 · Background selector (Voice + Live Rooms) */
.bgpick{max-height:88%;}
.bgpick-modes{display:flex;gap:8px;margin-bottom:8px;}
.bgpick-mode{flex:1;height:40px;border-radius:12px;border:1.5px solid #E4DCC8;background:#fff;font-family:inherit;font-size:13px;font-weight:700;color:#5C665F;cursor:pointer;}
.bgpick-mode.on{background:linear-gradient(135deg,#0E5E46,#0B3D2E);color:#fff;border-color:#0B3D2E;}
.bgpick-mode:disabled{opacity:.45;cursor:default;}
.bgpick-note{font-size:12.5px;color:#7A7263;background:#FBF3DC;border-radius:10px;padding:8px 10px;margin-bottom:10px;}
.bgpick-note.dim{background:transparent;color:#9A927E;padding:4px 2px;margin:10px 0 0;}
.bgpick-toggle{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13.5px;font-weight:700;margin-bottom:10px;}
.bgpick-switch{min-width:58px;height:34px;border-radius:999px;border:1.5px solid #E4DCC8;background:#fff;font-family:inherit;font-weight:800;font-size:12px;color:#8A8378;cursor:pointer;}
.bgpick-switch.on{background:linear-gradient(135deg,#2FBF71,#177245);color:#fff;border-color:#177245;}
.bgpick-tabs{display:flex;gap:7px;overflow-x:auto;padding-bottom:8px;margin-bottom:4px;scrollbar-width:none;}
.bgpick-tabs::-webkit-scrollbar{display:none;}
.bgpick-tab{flex:none;height:34px;padding:0 13px;border-radius:999px;border:1.5px solid #E4DCC8;background:#fff;font-family:inherit;font-size:12.5px;font-weight:700;color:#5C665F;cursor:pointer;}
.bgpick-tab.on{background:#1D2B1A;color:#FFF3D6;border-color:#1D2B1A;}
.bgpick-prev{position:relative;height:190px;border-radius:16px;overflow:hidden;background:linear-gradient(168deg,#0B3D2E,#06231A);margin-bottom:10px;}
.bgpick-prev.theme{display:flex;align-items:flex-end;}
.bgpick-prev-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.bgpick-prev-media svg{width:100%!important;height:100%!important;display:block;}
.bgpick-prev .roombg-shade{position:absolute;inset:0;}
.bgpick-prev-name{position:absolute;left:12px;bottom:10px;right:52px;color:#fff;font-weight:800;font-size:14px;text-shadow:0 1px 6px rgba(0,0,0,.5);z-index:2;}
.bgpick-prev.theme .bgpick-prev-name{position:static;padding:12px;text-shadow:none;}
.bgpick-full-btn{position:absolute;top:10px;right:10px;width:36px;height:36px;border-radius:50%;border:0;background:rgba(0,0,0,.45);color:#fff;font-size:16px;cursor:pointer;z-index:2;}
.bgpick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.bgpick-card{position:relative;border:2px solid transparent;background:#fff;border-radius:14px;padding:6px;cursor:pointer;font-family:inherit;text-align:left;box-shadow:0 2px 8px rgba(28,36,32,.06);}
.bgpick-card.sel{border-color:#C9971C;box-shadow:0 4px 14px rgba(201,151,28,.25);}
.bgpick-thumb{display:block;height:64px;border-radius:9px;overflow:hidden;background:linear-gradient(135deg,#DCE9DF,#F3E9CF);position:relative;}
.bgpick-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.bgpick-thumb.theme{background:radial-gradient(300px 140px at 85% -40px,rgba(120,255,190,.45),transparent 60%),linear-gradient(168deg,#116149,#0B3D2E 55%,#04150D);}
.bgpick-tile-ic{display:flex;align-items:center;justify-content:center;height:100%;font-size:26px;}
.bgpick-name{display:block;font-size:11.5px;font-weight:700;color:#1D2B1A;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bgpick-badge{position:absolute;top:10px;left:10px;font-size:10px;font-weight:800;padding:3px 7px;border-radius:999px;background:rgba(0,0,0,.55);color:#FFD968;}
.bgpick-badge.use{background:#177245;color:#fff;}
.bgpick-badge.vip{background:#3A2A05;color:#FFD968;}
.bgpick-badge.mine{background:#0E5E46;color:#fff;}
.bgpick-full{position:absolute;inset:0;z-index:40;background:#04150D;}
.bgpick-full-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.bgpick-full-media svg{width:100%!important;height:100%!important;display:block;}
.bgpick-full .roombg-shade{position:absolute;inset:0;}
.bgpick-full-bar{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:10px;padding:14px 16px calc(14px + env(safe-area-inset-bottom));color:#fff;font-weight:800;font-size:15px;background:linear-gradient(transparent,rgba(0,0,0,.55));z-index:2;}
.bgpick-full-bar span:first-child{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* Fix 187 · Games VR lobby background + games picker placement rows */
.gvr-home{position:relative;overflow:hidden;}
.gvr-home.has-bg .gvr-shead,.gvr-home.has-bg .gvr-sbody{position:relative;z-index:1;}
.bgpick-plist{display:flex;flex-direction:column;gap:7px;margin-bottom:10px;}
.bgpick-prow{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:10px 12px;border-radius:12px;border:1.5px solid #E4DCC8;background:#fff;font-family:inherit;font-size:13.5px;font-weight:700;color:#1D2B1A;cursor:pointer;text-align:left;}
.bgpick-prow b{font-size:12px;color:#8A6D1F;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:45%;}
.bgpick-prow.on{border-color:#C9971C;background:#FFF8E1;box-shadow:0 2px 8px rgba(201,151,28,.18);}

/* Fix 188 · Background effects settings + picker tier/expiry lines */
.setbg-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid #F1EAD8;}
.setbg-row:last-of-type{border-bottom:0;}
.setbg-tx b{display:block;font-size:14.5px;color:#1D2B1A;}
.setbg-tx small{display:block;font-size:12px;color:#7A7263;margin-top:2px;line-height:1.45;}
.bgpick-tier{display:block;font-size:10px;font-weight:800;color:#9A6B12;margin-top:1px;}
.bgpick-exp{display:block;font-size:10px;font-weight:700;color:#0E5E46;margin-top:1px;}
.bgprev-still{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#DCE9DF,#F3E9CF);font-size:40px;}

/* Fix 189: Store & Style hub screen + store background cards */
.sshub-wrap{display:flex;flex-direction:column;gap:11px;padding:14px 16px 20px;}
.sshub-card{display:flex;align-items:center;gap:13px;width:100%;background:#FFF;border:1px solid #F0E7D3;border-radius:18px;padding:15px 14px;cursor:pointer;font-family:inherit;text-align:left;box-shadow:0 12px 26px rgba(14,94,70,.07),0 2px 5px rgba(14,94,70,.05);}
.sshub-card:active{transform:scale(.985);}
.sshub-ic{width:48px;height:48px;flex:0 0 48px;border-radius:14px;background:linear-gradient(145deg,#FFF7E6,#FDEBC8);display:flex;align-items:center;justify-content:center;font-size:24px;}
.sshub-tx{flex:1;}
.sshub-tx b{display:block;font-size:15.5px;color:var(--ink);}
.sshub-tx span{display:block;font-size:11.5px;color:var(--ink-mute);margin-top:2px;}
.sshub-note{text-align:center;font-size:11.5px;color:var(--ink-mute);margin-top:4px;}
.sc-bgimg{width:100%;height:64px;object-fit:cover;border-radius:10px;}
.sc-bgtile{width:100%;height:64px;border-radius:10px;background:linear-gradient(145deg,#0E5E46,#0A4634);display:flex;align-items:center;justify-content:center;font-size:24px;}
.sc-own{color:var(--green-d);font-weight:800;}
.bgstore-own{background:#EFFAF3;border:1px solid #CDEEDB;color:var(--green-d);border-radius:12px;padding:11px 12px;font-size:13px;font-weight:600;margin-top:12px;}
.bgstore-bal{font-size:11.5px;color:var(--ink-mute);text-align:center;margin-top:8px;}
.bgstore-desc{font-size:12.5px;color:var(--ink-soft);margin-top:8px;}

/* Fix 190: unified Backpack sections */
.bp-sec-note{font-size:12px;color:var(--ink-mute);padding:10px 18px 2px;line-height:1.45;}

/* Fix 191: gift filter chip rows */
.gift-cats{padding:10px 14px 0;}

/* Fix 193: room entry-effect overlay */
.entry-fx{position:absolute;inset:0;z-index:6;display:flex;align-items:center;justify-content:center;pointer-events:none;}
.entry-fx-card{display:flex;flex-direction:column;align-items:center;gap:10px;animation:entryfx-in .45s ease both;}
.entry-fx-art{width:190px;height:190px;object-fit:contain;filter:drop-shadow(0 18px 34px rgba(6,40,28,.35));}
.entry-fx-glyph{display:flex;align-items:center;justify-content:center;}
.entry-fx-glyph svg{width:150px;height:150px;}
.entry-fx-name{background:rgba(6,40,28,.82);color:#FFF;font-size:13.5px;font-weight:700;padding:8px 16px;border-radius:999px;box-shadow:0 10px 24px rgba(6,40,28,.3);}
@keyframes entryfx-in{from{opacity:0;transform:scale(.82) translateY(14px);}to{opacity:1;transform:scale(1) translateY(0);}}

/* Fix 194: Name Decorations (equipped name_deco item's art_key) */
.nd{font-weight:800;}
.nd-gold{background:linear-gradient(92deg,#8A5A00,#D9A404 40%,#F6C945 55%,#B97F02);-webkit-background-clip:text;background-clip:text;color:transparent;}
.nd-vip{background:linear-gradient(92deg,#7A4B00,#E3A008 45%,#FFD34D 60%,#A86E00);-webkit-background-clip:text;background-clip:text;color:transparent;text-decoration:underline;text-decoration-color:#E3A008;text-underline-offset:3px;}
.nd-neon{color:#00B8C4;text-shadow:0 0 7px rgba(0,216,232,.65),0 0 2px rgba(0,184,196,.8);}
.nd-gradient{background:linear-gradient(92deg,#0E7A55,#37B24D 45%,#E3A008);-webkit-background-clip:text;background-clip:text;color:transparent;}
.nd-royal{background:linear-gradient(92deg,#5B2EA6,#8B46C7 45%,#D9A404);-webkit-background-clip:text;background-clip:text;color:transparent;}
.nd-rainbow{background:linear-gradient(92deg,#E03131,#F08C00 25%,#F6C945 45%,#37B24D 65%,#1971C2 85%,#8B46C7);-webkit-background-clip:text;background-clip:text;color:transparent;}
.nd-emerald{color:#0B7A55;text-shadow:0 0 6px rgba(55,178,77,.45);}
.nd-rose{color:#D6336C;text-shadow:0 0 6px rgba(240,101,149,.5);}

/* Fix 196: collections strip + VIP-only badge */
.store-colls{padding:10px 18px 2px;}
.sc-vip{align-self:flex-start;background:linear-gradient(120deg,#8A5A00,#D9A404);color:#FFF;font-size:10px;font-weight:800;letter-spacing:.4px;padding:3px 8px;border-radius:999px;}

/* ============ Fix 197 — Voice Room Discovery header ============ */
.disco-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 2px 2px;}
.disco-vip{position:relative;border:none;cursor:pointer;background:linear-gradient(135deg,#F6C445,#E8930C);color:#fff;font-weight:800;font-style:italic;font-size:15px;padding:7px 14px;border-radius:999px;box-shadow:0 4px 12px rgba(232,147,12,.35);}
.disco-vip-dot{position:absolute;top:-7px;right:-6px;background:#F43F5E;color:#fff;font-size:8.5px;font-style:normal;font-weight:700;padding:2px 6px;border-radius:999px;}
.disco-tabs{display:flex;gap:6px;}
.disco-tabs button{border:none;background:transparent;cursor:pointer;font-size:16.5px;font-weight:600;color:#9AA79E;padding:6px 7px;}
.disco-tabs button.on{color:var(--ink);font-weight:800;}
.disco-mic{border:none;cursor:pointer;width:52px;height:38px;border-radius:999px;background:linear-gradient(135deg,#0E7A5F,#0A5C46);font-size:17px;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 14px rgba(10,92,70,.3);}
.disco-langs{display:flex;align-items:center;gap:8px;margin:12px 0 2px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none;}
.disco-langs::-webkit-scrollbar{display:none;}
.disco-pill{flex:none;border:1.5px solid #E7DFC9;background:#fff;color:#5C6B62;font-weight:700;font-size:13.5px;padding:7px 14px;border-radius:999px;cursor:pointer;}
.disco-pill.on{background:#EEF1EC;color:var(--ink);font-weight:800;border-color:#D9D2B8;}
.disco-chev{margin-left:auto;font-weight:800;color:var(--ink);padding:7px 12px;}
.disco-learn{margin-top:10px;}
.disco-learn-card{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:#fff;border:1.5px solid #EFE7CE;border-radius:16px;padding:13px 14px;margin-bottom:9px;cursor:pointer;box-shadow:0 4px 14px rgba(20,52,43,.05);}
.dlc-ic{font-size:24px;}
.dlc-tx{flex:1;display:flex;flex-direction:column;}
.dlc-tx b{font-size:15px;color:var(--ink);}
.dlc-tx span{font-size:12px;color:#8A968C;}
.disco-learn-h{font-size:13.5px;font-weight:800;color:var(--ink);margin:12px 2px 2px;}
.disco-pick-wrap{position:fixed;inset:0;background:rgba(10,30,22,.45);z-index:60;display:flex;align-items:flex-end;justify-content:center;}
.disco-pick{background:#FFFCF4;width:100%;max-width:520px;max-height:78vh;border-radius:22px 22px 0 0;padding:16px 16px 20px;display:flex;flex-direction:column;}
.disco-pick-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.disco-pick-h b{font-size:16.5px;color:var(--ink);}
.disco-pick-list{overflow-y:auto;margin-top:10px;}
.disco-pick-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;background:#fff;border:1.5px solid #EFE7CE;border-radius:13px;padding:11px 13px;margin-bottom:7px;cursor:pointer;font-size:14.5px;font-weight:700;color:var(--ink);}
.disco-pick-row small{font-size:11px;color:#B8860B;font-weight:700;white-space:nowrap;}
.disco-pick-row.off{opacity:.75;}
.disco-pick-row.off small{color:#9AA79E;}
.disco-pick-row.on{border-color:#0E7A5F;background:#EFFAF5;}
.disco-pick-note{font-size:12px;color:#8A968C;margin-top:8px;text-align:center;}

/* ============ Fix 198 — discovery banner carousel ============ */
.disco-bn{margin-top:12px;}
.disco-bn-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;border-radius:18px;}
.disco-bn-track::-webkit-scrollbar{display:none;}
.disco-bn-slide{flex:0 0 100%;scroll-snap-align:start;border:none;cursor:pointer;height:84px;border-radius:16px;position:relative;overflow:hidden;text-align:left;padding:12px;display:flex;flex-direction:column;justify-content:flex-end;gap:2px;}
.disco-bn-slide.th-violet{background:radial-gradient(120% 160% at 15% 0%,#7C3AED 0%,#4C1D95 48%,#2A0A54 100%);}
.disco-bn-slide.th-gold{background:linear-gradient(120deg,#B45309,#F59E0B 55%,#F6C445);}
.disco-bn-slide.th-emerald{background:linear-gradient(120deg,#064E3B,#0E7A5F 60%,#34D399);}
.disco-bn-slide.th-rose{background:linear-gradient(120deg,#881337,#E11D48 60%,#FB7185);}
.disco-bn-slide.th-ocean{background:linear-gradient(120deg,#0C4A6E,#0284C7 60%,#38BDF8);}
.disco-bn-slide.has-img{padding:0;}
.disco-bn-slide.has-img .disco-bn-k{margin:0 12px;}
.disco-bn-slide.has-img .disco-bn-t{margin:0 12px 9px;}
.disco-bn-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.disco-bn-k{color:rgba(255,255,255,.85);font-size:10.5px;letter-spacing:2px;font-weight:700;}
.disco-bn-t{color:#fff;font-size:16.5px;font-weight:900;line-height:1.15;text-shadow:0 2px 10px rgba(0,0,0,.3);max-width:92%;}
.disco-bn-dots{display:flex;gap:5px;justify-content:center;margin-top:8px;}
.disco-bn-dots i{width:14px;height:4px;border-radius:4px;background:#D8D2C2;display:block;transition:background .25s;}
.disco-bn-dots i.on{background:var(--ink);}

/* ============ Fix 199 — rich room cards ============ */
.vr-card-p{display:flex;align-items:center;gap:10px;margin-top:9px;}
.vr-stack{display:inline-flex;align-items:center;}
.vr-stack-more{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:#EEF1EC;border:2px solid #fff;color:var(--ink);font-size:11px;font-weight:800;margin-left:-8px;}
.vr-stack-none{font-size:12px;color:#9AA79E;font-style:italic;}
.vr-counts{font-size:12.5px;color:#5C6B62;font-weight:600;}
.lr-lvl{display:inline-block;background:#F3E9C8;color:#8A6D1A;font-size:10.5px;font-weight:800;border-radius:999px;padding:1px 7px;vertical-align:2px;}
.lr-card-counts{font-size:12px;color:#8A968C;font-weight:600;text-align:center;margin-top:2px;}

/* ============ Fix 200 — discovery search, topics, sort ============ */
.disco-search{display:flex;align-items:center;gap:8px;background:#fff;border:1.5px solid #E7DFC9;border-radius:999px;padding:9px 14px;margin-top:12px;}
.ds-ic{font-size:14px;opacity:.75;}
.disco-search-in{flex:1;border:none;outline:none;background:transparent;font-size:14.5px;color:var(--ink);min-width:0;}
.ds-x{border:none;background:#EEF1EC;color:#5C6B62;width:22px;height:22px;border-radius:50%;cursor:pointer;font-size:11px;flex:none;}
.disco-pill.sm{font-size:12.5px;padding:6px 12px;}
.disco-topics{margin-top:10px;}
.disco-sort{display:flex;align-items:center;gap:6px;margin-top:10px;}
.ds-lb{font-size:12px;font-weight:700;color:#9AA79E;margin-right:2px;}
.disco-sort-b{border:1.5px solid #E7DFC9;background:#fff;color:#5C6B62;font-size:12px;font-weight:700;padding:5px 11px;border-radius:999px;cursor:pointer;}
.disco-sort-b.on{background:#0E7A5F;border-color:#0E7A5F;color:#fff;}

/* ============ Fix 201 — featured cards + background stills ============ */
.vr-card.feat{border:1.5px solid #E9B949;box-shadow:0 8px 22px rgba(184,134,11,.18);}
.vr-feat{background:linear-gradient(135deg,#F6C445,#E8930C);color:#fff;font-size:9.5px;font-weight:800;letter-spacing:.6px;padding:3px 8px;border-radius:999px;}
.vr-band.has-bg{background-size:cover;background-position:center;}
.lr-card.feat{border:1.5px solid #E9B949;box-shadow:0 8px 22px rgba(184,134,11,.18);}
.lr-feat{text-align:center;background:linear-gradient(135deg,#F6C445,#E8930C);color:#fff;font-size:9.5px;font-weight:800;letter-spacing:.8px;padding:3px 0;border-radius:999px;margin:6px auto 0;width:fit-content;padding-left:10px;padding-right:10px;}

/* ============ Fix 202 — pagination ============ */
.disco-more{display:block;width:100%;margin-top:12px;border:1.5px solid #E7DFC9;background:#fff;color:var(--ink);font-weight:800;font-size:14px;padding:12px;border-radius:14px;cursor:pointer;}

/* ============ Fix 203 — skeleton loading ============ */
.disco-skl{margin-top:14px;}
.skl-card{background:#fff;border:1.5px solid #EFE7CE;border-radius:18px;padding:12px;margin-bottom:12px;}
.skl-band{height:54px;border-radius:12px;background:#EFEBDD;margin-bottom:12px;}
.skl-line{height:11px;border-radius:6px;background:#EFEBDD;margin-bottom:9px;}
.skl-line.w60{width:60%;}
.skl-line.w85{width:85%;}
.skl-line.w40{width:40%;margin-bottom:2px;}

/* Fix 211 · party games inside Voice Rooms — strip + panel chrome
   (boards reuse the Games VR classes: tb-*, sp-*, rps-*, cc-*). */
.vg-strip{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 12px 0;background:linear-gradient(120deg,#FFF7E0,#FFEFC4);border:1px solid #F3D98B;border-radius:14px;padding:9px 12px;font-size:13px;color:#7A5410;}
.vg-open{border:0;border-radius:999px;background:#B8860B;color:#fff;font-weight:700;font-size:12.5px;padding:7px 14px;cursor:pointer;white-space:nowrap;}
.vg-panel{margin:10px 12px 0;background:#fff;border:1px solid #F0E3B2;border-radius:18px;padding:12px;box-shadow:0 6px 18px rgba(160,120,20,.10);max-height:72vh;overflow-y:auto;}
/* Fix 248: while playing, the panel keeps its play area on one
   screen — a smaller in-room wheel, tighter spacing, and the
   panel scrolls internally instead of pushing the room feed and
   controls far below the fold. */
.vg-panel .sp-wrap{margin-top:6px;padding:0 4px;}
.vg-panel .sp-wheel{width:min(228px,62vw);}
.vg-panel .sp-btnrow{margin:12px 4px 0;}
.vg-panel .sp-scores{padding:10px 4px 0;}
.vg-endrow{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}
/* Fix 248.1: game-focus mode — slim room meta line where the stage
   was, and the mic state/toggle inside the players bar. */
.vr-gamefocus-meta{margin:8px 14px 0;font-size:12px;font-weight:700;color:#EAF3EC;opacity:.85;text-align:right;}
.vg-mic{font-size:11px;margin-left:5px;}
.vg-micbtn{border:0;background:rgba(18,128,95,.14);border-radius:999px;width:24px;height:24px;font-size:12px;line-height:1;cursor:pointer;margin-left:5px;padding:0;vertical-align:middle;}
.vg-micbtn.off{background:rgba(192,57,43,.16);}
.vg-endbtn{flex:1 1 30%;border:1.5px solid #E4D9BE;background:#FFF9EC;color:#7A5410;border-radius:12px;padding:10px 8px;font-size:13px;font-weight:800;cursor:pointer;}
.vg-endbtn.primary{background:linear-gradient(135deg,#F6B73C,#F08C1A);color:#fff;border-color:transparent;}
.vg-endbtn.danger{background:#FFF1F1;color:#C0392B;border-color:#F2C1C1;}
/* Fix 248: real moment animations for every game. */
@keyframes rpsReveal{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.1)}100%{transform:scale(1);opacity:1}}
.rps-banner.reveal ~ .rps-players .rps-p{animation:rpsReveal .45s ease;}
@keyframes ccFlip{0%{transform:rotateY(90deg) scale(.82);opacity:0}100%{transform:rotateY(0) scale(1);opacity:1}}
.cc-topwrap.cc-flip .cc-card{animation:ccFlip .38s ease;}
@keyframes winIn{0%{transform:scale(.85);opacity:0}100%{transform:scale(1);opacity:1}}
.gvr-winner{animation:winIn .55s ease;}
@keyframes trophyBounce{0%{transform:scale(.4) rotate(-14deg)}55%{transform:scale(1.25) rotate(6deg)}100%{transform:scale(1) rotate(0)}}
.gvr-trophy{animation:trophyBounce .8s ease;}
@keyframes spBoom{0%,100%{transform:translateX(0)}20%{transform:translateX(-5px)}40%{transform:translateX(5px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}
.sp-turn.boom{color:#C0392B;font-weight:900;animation:spBoom .5s ease;}
.sp-turn.bigwin{color:#B97E0B;font-weight:900;text-shadow:0 0 12px rgba(246,183,60,.65);}
.vg-note{font-size:12.5px;color:#8a6d1f;background:#FFF9E8;border-radius:10px;padding:8px 10px;margin:8px 0;}
.vg-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
.vg-mini{border:1px solid #E4D48A;background:#FFFDF4;color:#7A5410;border-radius:999px;padding:7px 13px;font-size:12.5px;font-weight:600;cursor:pointer;}
.vg-mini.danger{border-color:#F2B8B5;background:#FFF5F5;color:#B3261E;}

/* Fix 214: right-side raised-hands icon + sheet rows */
.vr-hands-fab{position:fixed;right:10px;top:42%;width:54px;height:54px;border-radius:50%;border:2px solid #fff;background:linear-gradient(145deg,#ffd873,#e9a13b);font-size:25px;line-height:1;box-shadow:0 6px 18px rgba(120,72,0,.35);z-index:5;cursor:pointer;animation:vrFabPulse 2.2s ease-in-out infinite}
@keyframes vrFabPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}
.vr-hands-badge{position:absolute;top:-5px;right:-5px;min-width:21px;height:21px;padding:0 5px;border-radius:999px;background:#e53935;color:#fff;font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;border:2px solid #fff}
.vr-hand-row{display:flex;align-items:center;gap:9px;padding:8px 2px;border-bottom:1px solid #f0e7d3}
.vr-hand-row:last-of-type{border-bottom:none}
.vr-hand-nm{flex:1;font-weight:700;color:var(--ink);text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vr-hand-act{border:none;border-radius:999px;padding:8px 12px;font-weight:800;font-size:13px;background:linear-gradient(145deg,#1d7a4f,#0e5c3a);color:#fff;cursor:pointer;white-space:nowrap}
.vr-hand-act.ghost{background:#f3ead8;color:#8a6a2f}

/* Fix 218 · Moments tabs, pagination, skeletons, new-posts pill */
.mo2-tabs{display:flex;gap:8px;padding:10px 14px 4px;background:#fff;overflow-x:auto;scrollbar-width:none}
.mo2-tabs::-webkit-scrollbar{display:none}
.mo2-tab{flex:none;border:1.5px solid #ECEAE2;background:#FBFAF6;color:#5B5B57;border-radius:999px;padding:7px 15px;font-size:13.5px;font-weight:800;font-family:inherit;cursor:pointer}
.mo2-tab.on{background:linear-gradient(145deg,#1d7a4f,#0e5c3a);border-color:#0e5c3a;color:#fff}
.mo2-newpill{display:block;margin:12px auto 2px;border:none;border-radius:999px;padding:9px 18px;font-size:13.5px;font-weight:800;font-family:inherit;background:linear-gradient(145deg,#E7B93C,#C9962E);color:#3D2E05;cursor:pointer;box-shadow:0 4px 14px rgba(201,150,46,.35)}
.mo2-more{display:block;width:calc(100% - 28px);margin:12px 14px 4px;border:1.5px solid #ECEAE2;background:#fff;color:#0E5E46;border-radius:14px;padding:12px;font-size:14px;font-weight:800;font-family:inherit;cursor:pointer}
.mo2-skel{padding:6px 0}
.mo2-skel-card{height:190px;margin-bottom:10px;background:linear-gradient(100deg,#F1EFE7 40%,#F8F6EF 50%,#F1EFE7 60%);border-bottom:10px solid #F5F4F0}
.mo-link{color:#0E7A55;font-weight:700;text-decoration:none;word-break:break-all}
.mo-more{color:#0E7A55;font-weight:800}

/* Fix 219 · composer audience/language chips, practice toggle, comments-off note */
.mc-audrow{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.mc-aud{border:1.5px solid #ECEAE2;background:#FBFAF6;color:#5B5B57;border-radius:999px;padding:7px 14px;font-size:13px;font-weight:800;font-family:inherit;cursor:pointer}
.mc-aud.on{background:linear-gradient(145deg,#1d7a4f,#0e5c3a);border-color:#0e5c3a;color:#fff}
.mc-learn{display:flex;align-items:center;gap:9px;margin-top:16px;font-size:14px;font-weight:700;color:#23231F;cursor:pointer}
.mc-learn input{width:19px;height:19px;accent-color:#0e5c3a}
.md-off{margin:10px 14px 16px;padding:12px 14px;background:#FBFAF6;border:1.5px solid #ECEAE2;border-radius:14px;font-size:13.5px;font-weight:700;color:#5B5B57;text-align:center}

/* Fix 220 · earlier-comments button */
.md-more{display:block;width:calc(100% - 28px);margin:4px 14px 10px;border:1.5px solid #ECEAE2;background:#fff;color:#0E5E46;border-radius:12px;padding:10px;font-size:13.5px;font-weight:800;font-family:inherit;cursor:pointer}

/* Fix 221 · video Moments */
.mo2-vid{position:relative;margin-top:11px;border-radius:14px;overflow:hidden;background:#101010}
.mo2-vid-poster{width:100%;max-height:560px;object-fit:cover;display:block}
.mo2-vid-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:58px;height:58px;border-radius:50%;border:none;background:rgba(14,92,58,.88);color:#fff;font-size:21px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding-left:4px}
.mo2-vid-dur{position:absolute;right:9px;bottom:9px;background:rgba(0,0,0,.65);color:#fff;font-size:11.5px;font-weight:800;border-radius:7px;padding:3px 7px}
.mo2-vid-el{width:100%;max-height:560px;display:block;background:#000}
.mc-vidprev{display:flex;align-items:center;gap:9px;margin-top:12px;background:#FBFAF6;border:1.5px solid #ECEAE2;border-radius:14px;padding:11px 13px;font-size:14px;font-weight:700;color:#23231F}
.mc-vidprev span{flex:1}
.mc-vidprev button{width:24px;height:24px;border-radius:50%;border:none;background:#23231F;color:#fff;font-size:11px;cursor:pointer;line-height:1}

/* Fix 222 · saved view + per-person Moments bar + profile View all */
.mo-saved.on{background:#FFF3D6}
.mo2-usertag{display:flex;align-items:center;justify-content:space-between;margin:10px 14px 2px;background:#FBFAF6;border:1.5px solid #ECEAE2;border-radius:14px;padding:10px 13px;font-size:14px;font-weight:800;color:#23231F}
.mo2-usertag button{border:none;background:#23231F;color:#fff;border-radius:999px;padding:6px 12px;font-size:12.5px;font-weight:800;font-family:inherit;cursor:pointer}
.pf2-viewall{float:right;border:none;background:none;color:#0E7A55;font-size:13px;font-weight:800;font-family:inherit;cursor:pointer;padding:0}

/* Fix 225 · the sheet Cancel/secondary button (was unstyled) +
   Moments screen can never pan sideways */
.sheet-btn{display:block;width:100%;margin-top:14px;border:1.5px solid #ECEAE2;background:#FBFAF6;color:#23231F;border-radius:14px;padding:13px;font-size:15px;font-weight:800;font-family:inherit;cursor:pointer}
#sh-main:has(> .mo2-tabs),#sh-main:has(> .mo2-usertag),#sh-main:has(> .mo2-card),#sh-main:has(> #mc-body){overflow-x:clip}

/* Fix 226 · multi-select share sheet */
.sheet-btn.go{background:linear-gradient(145deg,#1d7a4f,#0e5c3a);border-color:#0e5c3a;color:#fff}
.sheet-btn.go[hidden]{display:none}
.sheet-btn:disabled{opacity:.65}
.mshare-row.sel{background:#EDF7F0}
.mshare-row.sel .mshare-go{color:#0E7A55;font-weight:900}

/* Fix 228 · Live Room role tags */
.lr-role-tag{font-size:9px;font-weight:900;letter-spacing:.4px;padding:2px 6px;border-radius:8px;color:#fff}
.lr-role-tag.co{background:linear-gradient(145deg,#B8860B,#8a5f00)}
.lr-role-tag.mod{background:linear-gradient(145deg,#5b6ee1,#3d4fb8)}

/* Fix 229 · exact Live Room stage layouts (Master §5) */
.lr-stage.n2{grid-template-columns:1fr 1fr}
.lr-stage.n2 .lr-tile{height:198px}
.lr-stage.n3{grid-template-columns:1.55fr 1fr;grid-template-rows:1fr 1fr}
.lr-stage.n3 .lr-tile{height:148px}
.lr-stage.n3 .lr-tile.big{grid-row:1/span 2;height:auto}
.lr-seat-strip{display:block;width:100%;margin-top:8px;padding:10px 12px;border:2px dashed rgba(255,255,255,.4);border-radius:14px;background:rgba(0,0,0,.18);color:#fff;font:inherit;font-size:13px;font-weight:800;cursor:pointer}

/* Fix 231 · Live Room description line */
.lr-desc{margin-top:8px;padding:9px 12px;border-radius:12px;background:rgba(255,255,255,.65);color:var(--ink-soft);font-size:13px;line-height:1.45}

/* Fix 233 · Moments room-share panel (reference composition) */
.mo-room{display:block;width:100%;margin-top:11px;padding:0;border:none;background:none;cursor:pointer;font:inherit;text-align:left}
.mo-room-panel{position:relative;display:block;border-radius:20px;padding:13px 14px 12px;overflow:hidden;color:#fff;box-shadow:0 8px 20px rgba(31,24,71,.16)}
.mo-room-panel .vr-stack-i{border:2px solid rgba(255,255,255,.85)}
.mo-room-chips{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.mo-chip{background:#fff;color:var(--ink);font-size:11px;font-weight:800;border-radius:999px;padding:4px 9px;line-height:1.25}
.mo-chip.topic{color:#5a48d7}
.mo-room-live{margin-left:auto;background:#E5484D;color:#fff;font-size:10.5px;font-weight:900;letter-spacing:.5px;border-radius:999px;padding:4px 9px}
.mo-room-title{display:flex;align-items:center;gap:8px;margin-top:11px;font-size:17.5px;font-weight:900;line-height:1.25;text-shadow:0 1px 8px rgba(0,0,0,.18)}
.mo-bars{display:inline-flex;align-items:flex-end;gap:2.5px;height:15px;flex:none}
.mo-bars i{display:block;width:3.5px;border-radius:2px;background:currentColor}
.mo-bars i:nth-child(1){height:8px}.mo-bars i:nth-child(2){height:14px}.mo-bars i:nth-child(3){height:10px}
.mo-room-counts{display:block;margin-top:5px;font-size:12px;font-weight:700;opacity:.94}
.mo-room-foot{display:flex;align-items:flex-end;gap:10px;margin-top:12px}
.mo-room-host{display:flex;align-items:center;gap:9px;min-width:0}
.mo-room-host .vr-avimg,.mo-room-host .vr-avini{border:2.5px solid rgba(255,255,255,.9);flex:none}
.mo-room-hn{display:flex;flex-direction:column;font-size:14px;font-weight:800;line-height:1.2;min-width:0}
.mo-room-hn small{font-size:11px;font-weight:700;opacity:.9}
.mo-room-nl{display:block;min-width:0}
.mo-room-side{margin-left:auto;display:flex;align-items:center;gap:9px;flex:none}
.mo-room-join{background:#0E7A55;color:#fff;font-size:12.5px;font-weight:900;border-radius:999px;padding:8px 15px;box-shadow:0 4px 10px rgba(0,0,0,.22)}
.mo-room-feat{position:absolute;top:44px;right:12px;background:linear-gradient(145deg,#F3CD6B,#DFA32A);color:#4a3200;font-size:10px;font-weight:900;border-radius:999px;padding:3px 8px}
.mo-room-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}
.mo-rtag{background:#EFEBFF;color:#5a48d7;font-size:12px;font-weight:800;border-radius:999px;padding:6px 12px}
/* LR theme panels are light pastels — dark text on those. */
.mo-room-panel[class*="lr-pt-"]{color:var(--ink);box-shadow:0 8px 20px rgba(90,72,215,.12)}
.mo-room-panel[class*="lr-pt-"] .mo-room-title{text-shadow:none}
.mo-room-panel[class*="lr-pt-"] .mo-room-hn small{opacity:.75}

/* Fix 234 · floating current-room mini-player */
#mini-dock{position:fixed;right:12px;bottom:calc(96px + env(safe-area-inset-bottom));z-index:70;display:none}
.mini-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;width:108px;padding:12px 8px 10px;background:#fff;border-radius:18px;box-shadow:0 12px 30px rgba(23,19,16,.28),0 2px 8px rgba(23,19,16,.14);cursor:pointer;text-align:center;touch-action:none;user-select:none;-webkit-user-select:none}
.mini-card:active{transform:scale(.97)}
.mini-x{position:absolute;top:-7px;right:-7px;width:24px;height:24px;border:none;border-radius:50%;background:#3c3c43;color:#fff;font-size:12px;font-weight:900;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 3px 8px rgba(0,0,0,.3);padding:0}
.mini-av{display:flex}
.mini-av .vr-avimg,.mini-av .vr-avini{box-shadow:0 0 0 2.5px #E5484D}
.mini-nm{font-size:12px;font-weight:800;color:var(--ink);line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:92px}
.mini-sub{font-size:10px;font-weight:700;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:92px}
.mini-live{color:#E5484D;font-weight:900}
.sheet-btn.danger{background:#FDF0EC;border-color:#F2C4B8;color:#B3261E}

/* Fix 234.2 · mic toggle on the floating card */
.mini-mic{margin-top:5px;width:34px;height:34px;border-radius:50%;border:1.5px solid #ECEAE2;background:#FBFAF6;font-size:16px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.mini-mic.on{background:#E7F6EE;border-color:#9FD8BC}

/* Fix 235 · official-chat room announcements use the Moments panel */
.ntc-roomwrap{width:92%;max-width:560px}
.ntc-t2{font-size:13.5px;font-weight:800;color:var(--ink);margin:2px 0 2px}
.ntc-roomwrap .mo-room{margin-top:6px}
.ntc-roomwrap .ntc-time{text-align:right}
/* The panel's stage stack: the white ring belongs on the round
   avatar itself, not on its square wrapper span. */
.mo-room-panel .vr-stack-i{border:none}
.mo-room-panel .vr-stack-i .vr-avimg,.mo-room-panel .vr-stack-i .vr-avini{border:2px solid rgba(255,255,255,.85)}

/* Fix 236 · ended-room panel state */
.mo-room-panel.ended{filter:saturate(.22) brightness(1.04)}
.mo-room-live.ended{background:#6B7280}
div.mo-room{margin-top:11px}

/* Fix 238 · every game carries its own background (strip + panel) */
.vg-strip.gp-tambola{background:linear-gradient(120deg,#FFE9B8,#FFC46B);border-color:#E8A93D}
.vg-strip.gp-spin{background:linear-gradient(120deg,#E4D9FF,#B79CFF);border-color:#8B6FE8}
.vg-strip.gp-rps{background:linear-gradient(120deg,#C9F5E7,#6FE3C1);border-color:#2FBF9B}
.vg-strip.gp-clash{background:linear-gradient(120deg,#FFD3D3,#FFF0B3 34%,#C9F2C0 67%,#BCD9FF);border-color:#E08BB0}
.vg-panel.gp-tambola{background:linear-gradient(165deg,#FFF6DE,#FFE1A1);border-color:#E8A93D}
.vg-panel.gp-spin{background:linear-gradient(165deg,#F1EAFF,#D5C2FF);border-color:#8B6FE8}
.vg-panel.gp-rps{background:linear-gradient(165deg,#E7FBF3,#A9EED6);border-color:#2FBF9B}
.vg-panel.gp-clash{background:linear-gradient(150deg,#FFE3E3,#FFF6C9 34%,#DFF7D8 67%,#DCEBFF);border-color:#E08BB0}

/* Fix 239: in-room gift panel (Voice + Live Rooms) */
.rg-sheet{max-height:88%;display:flex;flex-direction:column}
.rg-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.rg-head .vr-sheet-t{flex:1}
.rg-bal{display:inline-flex;align-items:center;gap:5px;background:#FFF3D6;border:1.5px solid #F0DCAE;border-radius:999px;padding:4px 11px;font-size:13.5px;color:#7A5410;flex:none}
.rg-x{width:34px;height:34px;border-radius:50%;border:1.5px solid #EFE3C8;background:#fff;font-size:15px;color:#5C6B54;cursor:pointer;flex:none}
.rg-people{display:flex;gap:10px;overflow-x:auto;padding:3px 2px 10px;scrollbar-width:none;flex:none}
.rg-people::-webkit-scrollbar{display:none}
.rg-pchip{flex:none;width:64px;border:none;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;padding:0;opacity:.72}
.rg-pchip>span{font-size:11px;font-weight:700;color:#42503C;max-width:64px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rg-pchip.sel{opacity:1}
.rg-pchip.sel>*:first-child{box-shadow:0 0 0 2.5px #E9A13B,0 0 0 5.5px #FFF3D6;border-radius:50%}
.rg-tabs{margin-bottom:10px;flex:none}
.rg-grid{overflow-y:auto;min-height:110px;padding:2px}
.rg-sheet .gsend-to{margin-top:10px}

/* Fix 240: in-room gift animation (plays for everyone in the room) */
.rfx-overlay{position:fixed;inset:0;z-index:84;display:flex;align-items:center;justify-content:center;pointer-events:none;padding:20px;transition:opacity .28s ease}
.rfx-overlay.out{opacity:0}
.rfx-overlay.banner{align-items:flex-start;padding-top:11vh}
.rfx-art{display:flex;justify-content:center;animation:rfxIn .38s cubic-bezier(.2,1.35,.4,1),rfxFloat 2.2s ease-in-out .38s infinite alternate}
.rfx-media{width:118px;height:118px;object-fit:contain;display:block}
.rfx-overlay.banner .rfx-media{width:62px;height:62px}
.rfx-overlay.full .rfx-media{width:min(62vw,290px);height:min(62vw,290px)}
.rfx-overlay.full .gart.big{transform:scale(2.6)}
@keyframes rfxIn{from{transform:scale(.55) translateY(16px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}
@keyframes rfxFloat{from{transform:translateY(-3px)}to{transform:translateY(4px)}}

/* Fix 252 · VIP status tiers: badge, gold name, avatar rings. */
.vip-bdg{display:inline-flex;align-items:center;font-size:9px;font-weight:800;letter-spacing:.6px;color:#7A5200;background:linear-gradient(135deg,#FFE9A8,#FFC93C);border:1px solid #E9B949;border-radius:999px;padding:1.5px 6px;margin-left:5px;vertical-align:2px;white-space:nowrap;line-height:1.5;}
.vip-bdg4{background:linear-gradient(135deg,#FFF3C4,#FFB52E);color:#6B4400;box-shadow:0 2px 8px rgba(242,153,59,.45);}
.nm-gold{background:linear-gradient(92deg,#D9930D,#FFC93C 45%,#FFE9A8 58%,#D9930D);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:800;}
.vip-ring{display:inline-flex;border-radius:50%;line-height:0;flex:none;}
/* Fix 252.2 (owner): the ring hugs the PHOTO itself — the face
   element inside any equipped frame — thin, never a halo around
   the whole frame. Room avatars take .vip-faceN directly. */
.vip-ring3 .pt-face,.vip-ring3 .pf-av,.vip-face3{box-shadow:0 0 0 2px #F5C451,0 0 7px rgba(245,196,81,.45);}
.vip-ring4 .pt-face,.vip-ring4 .pf-av,.vip-face4{box-shadow:0 0 0 2.5px #FFB52E,0 0 9px rgba(255,181,46,.6);animation:vipRingPulse 2.6s ease-in-out infinite;}
@keyframes vipRingPulse{0%,100%{box-shadow:0 0 0 2.5px #FFB52E,0 0 7px rgba(255,181,46,.45);}50%{box-shadow:0 0 0 2.5px #FFCF5C,0 0 13px rgba(255,181,46,.85);}}
.vr-feed-sys.gold{background:linear-gradient(135deg,#FFE9A8,#FFC93C);color:#6B4400;font-weight:800;box-shadow:0 3px 12px rgba(242,153,59,.4);}
.vip2-flair{font-size:11px;font-weight:700;color:#8A6100;margin-top:2px;line-height:1.35;}
.vr-host-tag.vip{background:linear-gradient(135deg,#FFE9A8,#FFC93C);color:#6B4400;border:1px solid #E9B949;}
.sc-nd{display:flex;align-items:center;justify-content:center;padding:10px 6px;text-align:center;}
.nd-sample{font-size:19px;font-weight:800;line-height:1.15;}
.pv-nd{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:26px 12px;text-align:center;}
.pv-nd-name{font-size:26px;font-weight:900;line-height:1.2;}
.vr-sheet.prof{max-height:86vh;overflow-y:auto;}
.rprof-head{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding-top:2px;}
.rprof-langs{font-size:13.5px;color:#5A6B5E;}

/* Fix 257 (owner): room sheets stay SHORT — action buttons spread
   across the width two-per-row instead of one long column. Heads,
   inputs, text and primary actions keep the full row. */
.vr-sheet{display:flex;flex-wrap:wrap;gap:8px;align-content:flex-start;}
.vr-sheet>*{flex:1 1 100%;min-width:0;}
.vr-sheet>.vr-sheet-btn{flex:1 1 42%;}
.vr-sheet>.vr-sheet-btn.danger{flex:1 1 100%;}

/* Fix 259: in-room free-time + Buy VIP chip and sheet plan rows. */
.vr-vipchip{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;margin-top:8px;padding:9px 14px;border-radius:14px;border:1px solid rgba(255,214,110,.55);background:linear-gradient(120deg,rgba(64,44,4,.55),rgba(120,84,10,.45));color:#FFE9B8;font-size:13px;font-weight:600;cursor:pointer;text-align:left;}
.vr-vipchip b{flex:none;background:linear-gradient(135deg,#FFD76E,#E9A13B);color:#4A2E00;border-radius:999px;padding:5px 12px;font-size:12.5px;box-shadow:0 2px 8px rgba(0,0,0,.25);}
.rvip-row{display:flex;align-items:center;gap:10px;width:100%;background:#FFF9EC;border:1px solid #F0DFAE;border-radius:14px;padding:10px 12px;}
.rvip-tx{flex:1;display:flex;flex-direction:column;}
.rvip-tx b{font-size:14.5px;color:#4A3405;}
.rvip-tx span{font-size:12px;color:#8A6D2F;}
.rvip-buy{flex:none;background:linear-gradient(135deg,#FFD76E,#E9A13B);color:#4A2E00;border:none;border-radius:999px;padding:9px 14px;font-size:13px;font-weight:700;cursor:pointer;}
/* Fix 259: speakers' profile frames size correctly inside tiles. */
.lr-tile-photo .pf{width:118px;height:118px;}
.lr-tile-photo .pf-av{width:96px;height:96px;font-size:34px;}
/* Fix 271 — 1-to-1 calls: chat log pill + the full-screen call overlay. */
.ch-sys{margin:10px auto;max-width:82%;width:fit-content;background:#F1EAD9;color:#7A6C4F;border-radius:999px;padding:5px 14px;font-size:12px;font-weight:600;text-align:center;}
#call-ov{position:fixed;inset:0;z-index:300;display:none;background:linear-gradient(165deg,#FFFDF7 0%,#FBF3E4 55%,#F3E9FF 130%);align-items:center;justify-content:center;}
.call-card{display:flex;flex-direction:column;align-items:center;padding:24px;text-align:center;width:100%;}
.call-ava{width:118px;height:118px;border-radius:50%;object-fit:cover;box-shadow:0 16px 34px rgba(120,84,20,.28);border:3px solid #fff;}
.call-ava-tx{display:flex;align-items:center;justify-content:center;background:linear-gradient(140deg,#FFC93C,#F2993B);color:#4A3200;font-size:44px;font-weight:900;}
.call-name{margin-top:18px;font-size:23px;font-weight:800;color:var(--ink);max-width:86vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.call-name.light{color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.45);}
.call-status{margin-top:6px;font-size:14.5px;color:var(--ink-soft);font-weight:600;}
.call-status.light{color:#EDEBE4;text-shadow:0 1px 6px rgba(0,0,0,.45);}
.call-row{display:flex;gap:26px;justify-content:center;align-items:center;margin-top:44px;}
.call-btn{width:64px;height:64px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 10px 22px rgba(60,40,0,.22);}
.call-btn.end{background:#E23B3B;color:#fff;}
.call-btn.accept{background:#2FA84F;color:#fff;}
.call-btn.ctl{background:#fff;color:var(--ink);position:relative;}
.call-btn.ctl.off{background:#E8E2D2;color:#9A917E;}
.call-btn.ctl.off::after{content:"";position:absolute;left:12px;right:12px;top:50%;height:2.5px;background:#C0392B;border-radius:2px;transform:rotate(-38deg);}
.call-vidwrap{position:absolute;inset:0;background:#101312;display:flex;flex-direction:column;align-items:center;}
.call-vid-remote{position:absolute;inset:0;}
.call-vid-remote video.lk-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.call-vid-local{position:absolute;top:calc(14px + env(safe-area-inset-top));right:14px;width:96px;height:128px;border-radius:16px;overflow:hidden;background:#232323;box-shadow:0 10px 24px rgba(0,0,0,.4);border:2px solid rgba(255,255,255,.65);}
.call-vid-local video.lk-vid{width:100%;height:100%;object-fit:cover;}
.call-top{position:relative;margin-top:calc(16px + env(safe-area-inset-top));text-align:center;z-index:2;}
.call-vidwrap .call-row{position:relative;margin-top:auto;margin-bottom:calc(30px + env(safe-area-inset-bottom));z-index:2;}
.call-vidwrap .call-name{margin-top:0;}
