/* ═══════════════════════ ROOT VARIABLES ═══════════════════════ */
:root {
  --aubergine:#3D1A5B;--violet:#7C3AED;--coral:#FF6F59;--gold:#FFC947;
  --cream:#FFF7F0;--bg:#F5EFF9;--card-bg:#FFFFFF;--text:#1A0A2E;
  --muted:#9585A5;--border:#E8DFF2;--green:#22C55E;--red:#EF4444;
  --blue:#3B82F6;
  --grad:linear-gradient(135deg,#7C3AED 0%,#FF6F59 100%);
  --grad-gold:linear-gradient(135deg,#FFC947,#FF6F59);
  --nav-h:68px;--radius:20px;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;
  -webkit-touch-callout:none;-webkit-user-select:none;user-select:none;}
input,textarea,select{-webkit-user-select:text;user-select:text;}
html,body{height:100%;overflow:hidden}
body{
  font-family:'Plus Jakarta Sans',sans-serif;
  background:radial-gradient(ellipse at 30% 20%,#5B21B6 0%,#1E0A3C 60%,#3B0764 100%);
  display:flex;justify-content:center;align-items:center;
}
.app{
  width:100%;height:100%;max-width:430px;max-height:920px;
  background:var(--bg);border-radius:36px;
  box-shadow:0 40px 120px rgba(0,0,0,0.5),0 0 0 1px rgba(255,255,255,0.1);
  display:flex;flex-direction:column;overflow:hidden;position:relative;
}
.screen{position:absolute;inset:0;display:none;flex-direction:column;
  align-items:center;justify-content:center;overflow:hidden;}
.screen.active{display:flex}

/* ═══════════════════════ WELCOME ═══════════════════════ */
#s-welcome{background:var(--aubergine);padding:40px 28px;}
#s-welcome::before{
  content:'';position:absolute;inset:0;
  background-image:repeating-linear-gradient(0deg,transparent,transparent 20px,rgba(255,201,71,.06) 20px,rgba(255,201,71,.06) 21px),
    repeating-linear-gradient(90deg,transparent,transparent 20px,rgba(255,201,71,.06) 20px,rgba(255,201,71,.06) 21px),
    repeating-linear-gradient(45deg,transparent,transparent 28px,rgba(255,111,89,.04) 28px,rgba(255,111,89,.04) 30px);
  pointer-events:none;
}
.welcome-inner{position:relative;z-index:1;text-align:center;width:100%}
.brand-mark{width:72px;height:72px;border-radius:22px;background:var(--grad);display:flex;align-items:center;justify-content:center;font-size:2rem;margin:0 auto 20px;box-shadow:0 12px 30px rgba(124,58,237,.5);}
.brand-name{font-family:'Syne',sans-serif;font-size:2.8rem;font-weight:800;color:#fff;letter-spacing:-1px;margin-bottom:6px;}
.brand-tagline{color:rgba(255,255,255,.6);font-size:.95rem;margin-bottom:52px}
.btn-solid{display:block;width:100%;padding:17px;border:none;border-radius:14px;background:var(--grad);color:#fff;font-size:1rem;font-weight:700;font-family:'Plus Jakarta Sans',sans-serif;cursor:pointer;transition:transform .15s,box-shadow .15s;box-shadow:0 8px 24px rgba(124,58,237,.4);margin-bottom:12px;}
.btn-solid:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(124,58,237,.5)}
.btn-ghost{display:block;width:100%;padding:16px;border:1.5px solid rgba(255,255,255,.25);border-radius:14px;background:transparent;color:#fff;font-size:1rem;font-weight:600;font-family:'Plus Jakarta Sans',sans-serif;cursor:pointer;transition:background .15s;}
.btn-ghost:hover{background:rgba(255,255,255,.1)}
.welcome-badges{display:flex;justify-content:center;gap:16px;margin-top:28px}
.w-badge{display:flex;align-items:center;gap:6px;color:rgba(255,255,255,.5);font-size:.75rem;}

/* ═══════════════════════ AUTH ═══════════════════════ */
#s-signup,#s-login{background:var(--card-bg);justify-content:flex-start;align-items:stretch;padding:50px 28px 30px;}
.auth-back{background:var(--bg);border:none;width:42px;height:42px;border-radius:12px;font-size:1.2rem;cursor:pointer;margin-bottom:24px;align-self:flex-start;display:flex;align-items:center;justify-content:center;}
.auth-logo{font-family:'Syne',sans-serif;font-weight:800;font-size:1.2rem;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:8px}
.auth-h{font-size:1.8rem;font-weight:700;color:var(--text);margin-bottom:5px}
.auth-sub{color:var(--muted);font-size:.9rem;margin-bottom:30px}
.field{width:100%;padding:16px 18px;border:1.5px solid var(--border);border-radius:14px;font-size:.95rem;font-family:'Plus Jakarta Sans',sans-serif;color:var(--text);background:#FAFAFA;outline:none;transition:border-color .2s,background .2s;margin-bottom:12px;display:block;}
.field:focus{border-color:var(--violet);background:#fff}
.field-select{width:100%;padding:16px 18px;border:1.5px solid var(--border);border-radius:14px;font-size:.95rem;font-family:'Plus Jakarta Sans',sans-serif;color:var(--text);background:#FAFAFA url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%239585A5' d='M6 8L1 3h10z'/%3E%3C/svg%3E") no-repeat right 16px center;appearance:none;-webkit-appearance:none;outline:none;transition:border-color .2s,background .2s;margin-bottom:12px;display:block;cursor:pointer;}
.field-select:focus{border-color:var(--violet);background-color:#fff}
.field-row{display:flex;gap:10px}
.field-row .field,.field-row .field-select{flex:1;min-width:0}
.btn-auth{width:100%;padding:17px;border:none;border-radius:14px;background:var(--grad);color:#fff;font-size:1rem;font-weight:700;font-family:'Plus Jakarta Sans',sans-serif;cursor:pointer;transition:opacity .2s;margin-top:4px;}
.btn-auth:hover{opacity:.9}
.auth-switch{text-align:center;margin-top:20px;color:var(--muted);font-size:.88rem}
.auth-switch a{color:var(--violet);font-weight:700;cursor:pointer}

/* ═══════════════════════ ONBOARDING ═══════════════════════ */
#s-onboard{background:var(--card-bg);justify-content:flex-start;align-items:center;padding:50px 28px 30px;overflow-y:auto;}
.ob-prog{display:flex;gap:6px;margin-bottom:36px}
.ob-dot{height:6px;border-radius:3px;background:var(--border);flex:1;transition:background .3s}
.ob-dot.on{background:var(--violet)}
.ob-step{width:100%;display:none;flex-direction:column;align-items:center}
.ob-step.on{display:flex}
.ob-emoji{font-size:3.5rem;margin-bottom:16px}
.ob-h{font-size:1.6rem;font-weight:700;color:var(--text);text-align:center;margin-bottom:6px}
.ob-sub{color:var(--muted);text-align:center;font-size:.9rem;margin-bottom:28px}
.photo-box{width:140px;height:140px;border-radius:50%;border:2.5px dashed var(--violet);background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;margin-bottom:24px;font-size:2rem;overflow:hidden;transition:border-color .2s;}
.photo-box:hover{border-color:var(--coral)}
.photo-box img{width:100%;height:100%;object-fit:cover}
.chips{display:flex;flex-wrap:wrap;gap:9px;justify-content:center;margin-bottom:24px}
.chip{padding:10px 16px;border-radius:30px;border:1.5px solid var(--border);background:#fff;font-size:.85rem;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;transition:all .2s;color:var(--text);}
.chip.on{background:var(--aubergine);color:#fff;border-color:var(--aubergine)}
.lf-opt{width:100%;padding:15px 18px;margin-bottom:10px;border:1.5px solid var(--border);border-radius:14px;background:#fff;text-align:left;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;font-size:.92rem;color:var(--text);transition:all .2s;}
.lf-opt.on{border-color:var(--violet);background:rgba(124,58,237,.05);color:var(--violet);font-weight:600}
.btn-ob{width:100%;max-width:320px;padding:16px;border:none;border-radius:14px;background:var(--grad);color:#fff;font-size:1rem;font-weight:700;font-family:'Plus Jakarta Sans',sans-serif;cursor:pointer;margin-top:8px;}

/* ═══════════════════════ SWIPE ═══════════════════════ */
#s-swipe{background:var(--bg);justify-content:flex-start;align-items:stretch;padding-bottom:var(--nav-h);}
.swipe-hdr{background:#fff;padding:14px 16px 12px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);}
.s-brand{font-family:'Syne',sans-serif;font-weight:800;font-size:1.4rem;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.hdr-icons{display:flex;gap:8px;align-items:center}
.hdr-btn{width:38px;height:38px;border-radius:10px;border:none;background:var(--bg);font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.coins-pill{display:flex;align-items:center;gap:5px;background:linear-gradient(135deg,#3D1A5B,#7C3AED);border-radius:20px;padding:6px 12px;cursor:pointer;transition:transform .15s;}
.coins-pill:hover{transform:scale(1.05)}
.coins-pill span:first-child{font-size:.95rem}
.coins-val{font-weight:700;font-size:.85rem;color:#FFC947;font-family:'Syne',sans-serif}
.card-area{flex:1;position:relative;overflow:hidden;padding:14px}
.card-area-inner{position:relative;width:100%;height:100%}
/* Skeleton loader */
.skel-card{position:absolute;inset:0;border-radius:24px;background:linear-gradient(90deg,#e8dff2 25%,#f0e8f8 50%,#e8dff2 75%);background-size:200% 100%;animation:skelShimmer 1.4s infinite;box-shadow:0 12px 40px rgba(0,0,0,.1);}
@keyframes skelShimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
.pcard{position:absolute;inset:0;border-radius:24px;background-size:cover;background-position:center top;box-shadow:0 12px 40px rgba(0,0,0,.18);cursor:grab;user-select:none;touch-action:none;will-change:transform;overflow:hidden;}
.pcard:active{cursor:grabbing}
.ghost-card{position:absolute;inset:0;border-radius:24px;background-size:cover;background-position:center top;transform:scale(.94) translateY(12px);filter:brightness(.75);box-shadow:0 8px 24px rgba(0,0,0,.12);pointer-events:none;}
.ind{position:absolute;padding:8px 18px;border-radius:10px;font-size:1.6rem;font-weight:800;letter-spacing:1px;opacity:0;transition:opacity .08s;border:4px solid;pointer-events:none;z-index:5;font-family:'Syne',sans-serif;}
.ind-like{top:28px;left:22px;color:#22C55E;border-color:#22C55E;transform:rotate(-12deg)}
.ind-nope{top:28px;right:22px;color:#EF4444;border-color:#EF4444;transform:rotate(12deg)}
.ind-super{bottom:40%;left:50%;transform:translateX(-50%);color:#3B82F6;border-color:#3B82F6;font-size:1.2rem}
.card-grad{position:absolute;inset:0;background:linear-gradient(to top,rgba(10,0,20,.92) 0%,rgba(10,0,20,.4) 45%,transparent 100%)}
.card-body{position:absolute;bottom:0;left:0;right:0;padding:20px 20px 22px;color:#fff}
.card-name-row{display:flex;align-items:baseline;gap:8px;margin-bottom:3px}
.cn{font-family:'Syne',sans-serif;font-size:1.85rem;font-weight:800}
.ca{font-size:1.4rem;font-weight:400;opacity:.9}
.cv{color:#60A5FA;font-size:1rem;margin-left:2px}
.cc{font-size:.82rem;opacity:.75;margin-bottom:8px;display:flex;align-items:center;gap:4px}
.cbio{font-size:.88rem;opacity:.88;margin-bottom:12px;line-height:1.45}
.ctags{display:flex;flex-wrap:wrap;gap:6px}
.ctag{background:rgba(255,255,255,.16);backdrop-filter:blur(8px);padding:5px 12px;border-radius:20px;font-size:.76rem;font-weight:600;}
.legend-crown{position:absolute;top:12px;left:12px;z-index:6;background:linear-gradient(135deg,#FFC947,#FF6F59);border-radius:20px;padding:4px 10px;font-size:.72rem;font-weight:700;color:#fff;display:flex;align-items:center;gap:4px;}
.no-cards{text-align:center;position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted)}
.no-cards .big{font-size:3.5rem;margin-bottom:12px}
.swipe-actions{background:#fff;border-top:1px solid var(--border);display:flex;justify-content:space-evenly;align-items:center;padding:12px 10px 14px;}
.act{border-radius:50%;border:2px solid var(--border);background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 16px rgba(0,0,0,.08);transition:transform .15s,box-shadow .15s;}
.act:hover{transform:scale(1.12);box-shadow:0 8px 24px rgba(0,0,0,.14)}
.act.sm{width:50px;height:50px;font-size:1.4rem}
.act.lg{width:64px;height:64px;font-size:2rem}
.act.like{border-color:rgba(34,197,94,.25)}
.act.dislike{border-color:rgba(239,68,68,.25)}
.act.star{border-color:rgba(59,130,246,.25)}
.v-badge-card{position:absolute;top:14px;right:14px;z-index:6;background:rgba(34,197,94,.9);backdrop-filter:blur(8px);color:#fff;border-radius:20px;padding:4px 10px;font-size:.72rem;font-weight:700;display:flex;align-items:center;gap:4px;}

/* ═══════════════════════ MATCH OVERLAY ═══════════════════════ */
#s-match{background:rgba(20,5,40,.88);backdrop-filter:blur(18px);z-index:60;padding:30px 28px;}
.match-content{text-align:center;width:100%}
.match-sparkle{font-size:2rem;animation:spin 3s linear infinite;display:block;margin-bottom:8px}
@keyframes spin{to{transform:rotate(360deg)}}
.match-h{font-family:'Syne',sans-serif;font-size:3rem;font-weight:800;background:var(--grad-gold);-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:matchPop .5s cubic-bezier(.34,1.56,.64,1);margin-bottom:5px;}
@keyframes matchPop{from{transform:scale(0);opacity:0}}
.match-sub{color:rgba(255,255,255,.75);margin-bottom:28px;font-size:.95rem}
.match-avs{display:flex;justify-content:center;align-items:center;gap:0;margin-bottom:32px}
.mav{width:108px;height:108px;border-radius:50%;border:4px solid #fff;background-size:cover;background-position:center;box-shadow:0 12px 36px rgba(0,0,0,.4);}
.mav:first-child{transform:translateX(22px) rotate(-8deg)}
.mav:last-child{transform:translateX(-22px) rotate(8deg)}
.mheart{font-size:2.2rem;z-index:1;animation:hb 1.2s ease infinite}
@keyframes hb{0%,100%{transform:scale(1)}50%{transform:scale(1.25)}}
.match-btns{display:flex;flex-direction:column;gap:11px}
.mbtn-p{padding:16px;background:var(--grad);color:#fff;border:none;border-radius:50px;font-size:1rem;font-weight:700;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;}
.mbtn-s{padding:15px;background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.3);border-radius:50px;font-size:.95rem;font-weight:600;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;}
.confetti-container{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1}
.cfetti{position:absolute;width:8px;height:8px;border-radius:2px;animation:fall linear forwards;top:-20px;}
@keyframes fall{to{transform:translateY(120vh) rotate(720deg);opacity:0}}

/* ═══════════════════════ VIBES ═══════════════════════ */
#s-vibes{background:var(--bg);justify-content:flex-start;align-items:stretch;padding-bottom:var(--nav-h);overflow-y:auto;}
.section-hdr{padding:20px 20px 12px;background:#fff;border-bottom:1px solid var(--border)}
.section-h{font-family:'Syne',sans-serif;font-size:1.4rem;font-weight:800;color:var(--text)}
.section-s{color:var(--muted);font-size:.82rem;margin-top:2px}
.premium-banner{margin:14px;border-radius:16px;background:var(--grad-gold);padding:16px 18px;display:flex;align-items:center;gap:14px;color:var(--text);}
.pb-text p:first-child{font-weight:700;font-size:.95rem}
.pb-text p:last-child{font-size:.8rem;opacity:.75;margin-top:2px}
.vibes-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;padding:0 14px 14px}
.vcard{border-radius:18px;overflow:hidden;position:relative;aspect-ratio:3/4;background-size:cover;background-position:center;box-shadow:0 4px 16px rgba(0,0,0,.1);cursor:pointer;transition:transform .2s;}
.vcard:hover{transform:scale(1.02)}
.vcard.blur .vcard-blur-overlay{position:absolute;inset:0;background:rgba(20,5,40,.62);backdrop-filter:blur(12px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:12px;text-align:center;}
.vcard.blur .vcard-blur-overlay .vbo-icon{font-size:2rem;}
.vcard.blur .vcard-blur-overlay .vbo-label{color:#fff;font-size:.7rem;font-weight:700;line-height:1.3;opacity:.9}
.vcard.blur .vcard-blur-overlay .vbo-btn{background:var(--grad-gold);border:none;border-radius:20px;padding:7px 14px;color:#fff;font-size:.72rem;font-weight:800;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;box-shadow:0 4px 14px rgba(255,201,71,.5);white-space:nowrap;}
.vcard.unlocked .vcard-blur-overlay{display:none !important;}
.vcard-info{position:absolute;bottom:0;left:0;right:0;padding:10px 12px;background:linear-gradient(to top,rgba(0,0,0,.8),transparent);color:#fff;}
.vi-name{font-weight:700;font-size:.95rem}
.vi-city{font-size:.72rem;opacity:.8}
/* Vibes unlock banner */
.vibes-unlock-bar{margin:0 14px 12px;border-radius:16px;background:#fff;border:1.5px solid var(--border);padding:14px 16px;display:flex;align-items:center;gap:12px;box-shadow:0 2px 10px rgba(0,0,0,.06);}
.vub-icon{font-size:2rem;flex-shrink:0}
.vub-text{flex:1}
.vub-text p:first-child{font-weight:700;font-size:.88rem;color:var(--text)}
.vub-text p:last-child{font-size:.76rem;color:var(--muted);margin-top:2px}
.vub-btn{background:var(--grad);border:none;border-radius:12px;padding:10px 14px;color:#fff;font-size:.78rem;font-weight:800;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;flex-shrink:0;white-space:nowrap;}

/* ═══════════════════════ MATCHES ═══════════════════════ */
#s-matches{background:#fff;justify-content:flex-start;align-items:stretch;padding-bottom:var(--nav-h);}
.match-hdr{padding:20px 20px 0;border-bottom:1px solid var(--border)}
.match-hdr-h{font-family:'Syne',sans-serif;font-size:1.4rem;font-weight:800;color:var(--text);margin-bottom:16px}
.tabs{display:flex;gap:22px}
.tab{padding:10px 0;border-bottom:3px solid transparent;color:var(--muted);font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s;}
.tab.on{color:var(--violet);border-bottom-color:var(--violet)}
.match-scroll{overflow-y:auto;flex:1}
.nm-row{padding:16px;overflow-x:auto;display:flex;gap:14px;border-bottom:1px solid var(--border);}
.nm-row::-webkit-scrollbar{display:none}
.nm-item{display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer;min-width:64px}
.nm-av{width:62px;height:62px;border-radius:50%;background-size:cover;background-position:center;box-shadow:0 0 0 2px #fff,0 0 0 4px var(--violet);transition:transform .15s;}
.nm-av:hover{transform:scale(1.06)}
.nm-name{font-size:.72rem;font-weight:600;color:var(--text);text-align:center;white-space:nowrap}
.chat-item{display:flex;align-items:center;gap:14px;padding:14px 18px;cursor:pointer;border-bottom:1px solid var(--border);transition:background .12s;}
.chat-item:hover{background:#FAFAFA}
.ci-av{width:54px;height:54px;border-radius:50%;background-size:cover;background-position:center;flex-shrink:0;position:relative;}
.online{position:absolute;bottom:2px;right:2px;width:12px;height:12px;border-radius:50%;background:var(--green);border:2px solid #fff;}
.ci-info{flex:1;overflow:hidden}
.ci-name{font-weight:700;font-size:.97rem;color:var(--text)}
.ci-prev{color:var(--muted);font-size:.83rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.ci-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.ci-time{font-size:.72rem;color:var(--muted)}
.unread{background:var(--violet);color:#fff;border-radius:50%;width:20px;height:20px;font-size:.68rem;font-weight:700;display:flex;align-items:center;justify-content:center;}
.empty-state{text-align:center;padding:48px 24px;color:var(--muted)}
.empty-state .big{font-size:3rem;margin-bottom:12px}

/* ═══════════════════════ CHAT ═══════════════════════ */
#s-chat{background:#F8F4FF;justify-content:flex-start;align-items:stretch}
.chat-hdr{background:#fff;padding:13px 16px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--border);box-shadow:0 2px 12px rgba(0,0,0,.05);}
.chat-back{background:none;border:none;font-size:1.4rem;cursor:pointer;color:var(--violet);padding:4px;}
.ch-av{width:44px;height:44px;border-radius:50%;background-size:cover;background-position:center;position:relative;}
.ch-ver{position:absolute;bottom:-2px;right:-2px;background:#22C55E;border-radius:50%;width:16px;height:16px;border:2px solid #fff;display:flex;align-items:center;justify-content:center;font-size:.55rem;}
.ch-info{flex:1}
.ch-name{font-weight:700;font-size:1rem;color:var(--text)}
.ch-status{font-size:.78rem;color:var(--green)}
.ch-acts{display:flex;gap:6px}
.ch-icon{background:var(--bg);border:none;width:36px;height:36px;border-radius:10px;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;}
.ch-icon:hover{background:var(--border)}
.msgs-area{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:8px}
.msg-group{display:flex;flex-direction:column}
.msg-group.me{align-items:flex-end}
.msg-group.them{align-items:flex-start}
.bubble{max-width:75%;padding:11px 16px;border-radius:20px;font-size:.9rem;line-height:1.45;}
.me .bubble{background:var(--grad);color:#fff;border-bottom-right-radius:5px}
.them .bubble{background:#fff;color:var(--text);border-bottom-left-radius:5px;box-shadow:0 2px 8px rgba(0,0,0,.07)}
.sys-msg{text-align:center;color:var(--muted);font-size:.78rem;margin:6px 0}
.gift-bubble{background:linear-gradient(135deg,#FFC947,#FF6F59);color:#fff;border-radius:20px;padding:12px 18px;display:flex;align-items:center;gap:10px;max-width:220px;box-shadow:0 4px 20px rgba(255,111,89,.35);}
.gift-bubble-emoji{font-size:2rem}
.gift-bubble-info span:first-child{display:block;font-weight:700;font-size:.9rem}
.gift-bubble-info span:last-child{font-size:.75rem;opacity:.85}
.msg-time{font-size:.68rem;opacity:.55;margin-top:3px}
.ai-bar{padding:10px 16px;background:#fff;border-top:1px solid var(--border)}
.ai-hdr{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--violet);font-weight:700;margin-bottom:8px}
.sug-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}
.sug-row::-webkit-scrollbar{display:none}
.sug-chip{white-space:nowrap;padding:8px 14px;border-radius:20px;background:rgba(124,58,237,.08);border:1px solid rgba(124,58,237,.2);color:var(--violet);font-size:.8rem;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;transition:all .2s;flex-shrink:0;}
.sug-chip:hover{background:var(--violet);color:#fff}
.loading-dots{display:flex;gap:5px;padding:4px 8px;align-items:center}
.loading-dots span{width:7px;height:7px;border-radius:50%;background:var(--violet);animation:ldot 1.2s infinite}
.loading-dots span:nth-child(2){animation-delay:.2s}
.loading-dots span:nth-child(3){animation-delay:.4s}
@keyframes ldot{0%,80%,100%{transform:scale(.7);opacity:.5}40%{transform:scale(1.1);opacity:1}}
.chat-input-row{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#fff;border-top:1px solid var(--border);}
.gift-btn{width:40px;height:40px;border-radius:50%;border:none;background:var(--grad-gold);font-size:1.1rem;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(255,201,71,.4);transition:transform .15s;}
.gift-btn:hover{transform:scale(1.1)}
.chat-inp{flex:1;padding:12px 18px;border-radius:26px;border:1.5px solid var(--border);background:#F8F4FF;font-size:.92rem;font-family:'Plus Jakarta Sans',sans-serif;color:var(--text);outline:none;transition:border-color .2s,background .2s;}
.chat-inp:focus{border-color:var(--violet);background:#fff}
.send-btn{width:44px;height:44px;border-radius:50%;background:var(--grad);border:none;color:#fff;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .15s;}
.send-btn:hover{transform:scale(1.1)}

/* ═══════════════════════ PROFILE ═══════════════════════ */
#s-profile{background:var(--bg);justify-content:flex-start;align-items:stretch;padding-bottom:var(--nav-h);overflow-y:auto;}
.prof-cover{height:240px;background-size:cover;background-position:center;position:relative;flex-shrink:0;}
.prof-cover-grad{position:absolute;inset:0;background:linear-gradient(to top,rgba(20,5,40,.75),transparent)}
.prof-cover-info{position:absolute;bottom:16px;left:20px;right:20px;color:#fff}
.pcov-name{font-family:'Syne',sans-serif;font-size:1.8rem;font-weight:800;display:flex;align-items:center;gap:8px}
.pcov-sub{font-size:.85rem;opacity:.8;margin-top:3px}
.pcov-edit{position:absolute;top:14px;right:14px;background:rgba(255,255,255,.9);border:none;border-radius:24px;padding:8px 14px;font-weight:600;font-size:.82rem;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;}
.verified-pill{display:inline-flex;align-items:center;gap:4px;background:rgba(34,197,94,.9);color:#fff;border-radius:20px;padding:3px 8px;font-size:.72rem;font-weight:700;}
.stats-row{display:flex;background:#fff;margin:14px;border-radius:18px;box-shadow:0 2px 12px rgba(0,0,0,.06);overflow:hidden;}
.stat{flex:1;padding:16px;text-align:center;border-right:1px solid var(--border)}
.stat:last-child{border-right:none}
.stat-n{font-family:'Syne',sans-serif;font-size:1.6rem;font-weight:800;color:var(--violet)}
.stat-l{font-size:.72rem;color:var(--muted);margin-top:1px}
.ps{background:#fff;margin:0 14px 14px;border-radius:18px;padding:18px;box-shadow:0 2px 12px rgba(0,0,0,.06)}
.ps-h{font-weight:700;margin-bottom:14px;display:flex;align-items:center;gap:8px;font-size:.95rem}
.ptags{display:flex;flex-wrap:wrap;gap:8px}
.ptag{padding:6px 14px;border-radius:20px;background:rgba(124,58,237,.1);color:var(--violet);font-size:.83rem;font-weight:600}
.psi{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid var(--border);cursor:pointer;}
.psi:last-child{border-bottom:none}
.psi-l{display:flex;align-items:center;gap:10px;font-size:.92rem}
.psi-v{color:var(--muted);font-size:.82rem}
.logout-btn{margin:0 14px 18px;width:calc(100% - 28px);padding:14px;border-radius:14px;background:#FFF0F0;color:var(--red);border:1px solid rgba(239,68,68,.2);font-size:.95rem;font-weight:600;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;}
.coins-card{margin:0 14px 14px;border-radius:18px;padding:18px;background:linear-gradient(135deg,#3D1A5B,#7C3AED);box-shadow:0 8px 30px rgba(124,58,237,.4);display:flex;align-items:center;justify-content:space-between;}
.coins-card-left span:first-child{display:block;color:rgba(255,255,255,.65);font-size:.8rem;margin-bottom:3px}
.coins-card-left strong{font-family:'Syne',sans-serif;font-size:2rem;color:#FFC947}
.coins-card-left small{display:block;color:rgba(255,255,255,.5);font-size:.72rem;margin-top:2px}
.coins-card-btn{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.25);color:#fff;border-radius:12px;padding:10px 16px;font-size:.85rem;font-weight:600;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;}
.coins-card-btn:hover{background:rgba(255,255,255,.25)}

/* ── Vibe Score ── */
.vibe-score-card{margin:0 14px 14px;border-radius:18px;padding:18px;background:#fff;box-shadow:0 2px 12px rgba(0,0,0,.06);}
.vs-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.vs-level{font-family:'Syne',sans-serif;font-size:.82rem;font-weight:800;padding:4px 12px;border-radius:20px;}
.vs-level.newbie{background:rgba(148,163,184,.15);color:#64748b}
.vs-level.explorer{background:rgba(59,130,246,.12);color:#3B82F6}
.vs-level.master{background:rgba(124,58,237,.12);color:#7C3AED}
.vs-level.legend{background:var(--grad-gold);color:#fff}
.vs-xp-label{font-size:.78rem;color:var(--muted)}
.vs-bar-wrap{background:var(--border);border-radius:10px;height:10px;overflow:hidden;margin-bottom:8px}
.vs-bar{height:100%;background:var(--grad);border-radius:10px;transition:width .8s cubic-bezier(.34,1.56,.64,1);}
.vs-meta{display:flex;justify-content:space-between;font-size:.72rem;color:var(--muted)}

/* ── Badges ── */
.badges-section{margin:0 14px 14px;background:#fff;border-radius:18px;padding:18px;box-shadow:0 2px 12px rgba(0,0,0,.06);}
.badge-grid{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.badge-item{display:flex;flex-direction:column;align-items:center;gap:5px;min-width:70px}
.badge-icon{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.6rem;box-shadow:0 4px 14px rgba(0,0,0,.1);}
.badge-icon.earned{background:var(--grad-gold);}
.badge-icon.locked{background:#f3f4f6;filter:grayscale(1);opacity:.5}
.badge-name{font-size:.68rem;font-weight:600;color:var(--text);text-align:center}

/* ── Contact footer ── */
.contact-footer{margin:0 14px 14px;background:#fff;border-radius:18px;padding:18px;box-shadow:0 2px 12px rgba(0,0,0,.06);}
.contact-row{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:.85rem;color:var(--text);border-bottom:1px solid var(--border)}
.contact-row:last-child{border-bottom:none}
.contact-row a{color:var(--violet);text-decoration:none;font-weight:600}

/* ═══════════════════════ BOTTOM NAV ═══════════════════════ */
.bnav{position:absolute;bottom:0;left:0;right:0;height:var(--nav-h);background:#fff;border-top:1px solid var(--border);display:flex;z-index:40;}
.bnav.off{display:none}
.nbtn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:none;border:none;cursor:pointer;color:var(--muted);font-family:'Plus Jakarta Sans',sans-serif;font-size:.62rem;font-weight:600;position:relative;transition:color .2s;}
.nbtn.on{color:var(--violet)}
.ni{font-size:1.5rem;line-height:1}
.nbadge{position:absolute;top:6px;right:calc(50% - 18px);background:var(--coral);color:#fff;border-radius:50%;width:18px;height:18px;font-size:.62rem;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid #fff;}

/* ═══════════════════════ TOAST ═══════════════════════ */
.toast{position:absolute;top:18px;left:50%;transform:translateX(-50%);background:rgba(20,5,40,.9);color:#fff;backdrop-filter:blur(10px);padding:10px 22px;border-radius:30px;font-size:.88rem;z-index:100;opacity:0;transition:opacity .25s;white-space:nowrap;pointer-events:none;border:1px solid rgba(255,255,255,.1);}
.toast.on{opacity:1}

/* ═══════════════════════ GIFT MODAL ═══════════════════════ */
.modal-overlay{position:absolute;inset:0;background:rgba(10,0,20,.7);backdrop-filter:blur(12px);z-index:90;display:flex;align-items:flex-end;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s;}
.modal-overlay.on{opacity:1;pointer-events:all}
.gift-sheet{width:100%;background:#fff;border-radius:28px 28px 0 0;padding:24px 20px 36px;transform:translateY(100%);transition:transform .35s cubic-bezier(.32,1.1,.64,1);}
.modal-overlay.on .gift-sheet{transform:translateY(0)}
.gift-sheet-h{font-family:'Syne',sans-serif;font-size:1.3rem;font-weight:800;color:var(--text);margin-bottom:4px}
.gift-sheet-sub{color:var(--muted);font-size:.83rem;margin-bottom:20px}
.gift-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}
.gift-item{border:1.5px solid var(--border);border-radius:16px;padding:14px 8px;text-align:center;cursor:pointer;transition:all .2s;background:#fff;}
.gift-item:hover{border-color:var(--violet);transform:scale(1.04)}
.gift-item.selected{border-color:var(--violet);background:rgba(124,58,237,.06);transform:scale(1.06)}
.gi-emoji{font-size:2rem;display:block;margin-bottom:5px}
.gi-name{font-size:.75rem;font-weight:600;color:var(--text);margin-bottom:3px}
.gi-cost{font-size:.72rem;color:var(--violet);font-weight:700}
.gift-send-btn{width:100%;padding:16px;border:none;border-radius:14px;background:var(--grad-gold);color:#fff;font-size:1rem;font-weight:700;font-family:'Plus Jakarta Sans',sans-serif;cursor:pointer;}
.gift-send-btn:disabled{opacity:.5;cursor:default}
.modal-close{position:absolute;top:16px;right:20px;background:var(--bg);border:none;width:32px;height:32px;border-radius:50%;font-size:1rem;cursor:pointer;}

/* ═══════════════════════ SHOP ═══════════════════════ */
#s-shop{background:var(--bg);justify-content:flex-start;align-items:stretch;padding-bottom:var(--nav-h);overflow-y:auto;}
.shop-hdr{background:linear-gradient(135deg,#3D1A5B,#7C3AED);padding:20px 20px 32px;color:#fff;}
.shop-hdr-top{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.shop-back{background:rgba(255,255,255,.15);border:none;width:38px;height:38px;border-radius:10px;font-size:1.2rem;cursor:pointer;color:#fff;display:flex;align-items:center;justify-content:center;}
.shop-hdr-h{font-family:'Syne',sans-serif;font-size:1.4rem;font-weight:800}
.shop-balance{background:rgba(255,255,255,.12);border-radius:16px;padding:14px 18px;display:flex;justify-content:space-between;align-items:center;}
.sb-label{font-size:.82rem;opacity:.75}
.sb-val{font-family:'Syne',sans-serif;font-size:2rem;color:#FFC947;font-weight:800}
.shop-section-h{padding:18px 20px 10px;font-family:'Syne',sans-serif;font-size:1rem;font-weight:800;color:var(--text)}
.coin-packages{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0 16px 16px;}
.coin-pkg{background:#fff;border-radius:18px;padding:18px;border:1.5px solid var(--border);cursor:pointer;transition:all .2s;box-shadow:0 2px 10px rgba(0,0,0,.05);text-align:center;position:relative;}
.coin-pkg:hover{border-color:var(--violet);transform:translateY(-2px);box-shadow:0 8px 24px rgba(124,58,237,.15)}
.coin-pkg.popular{border-color:var(--coral);border-width:2px}
.pkg-popular-tag{position:absolute;top:-10px;left:50%;transform:translateX(-50%);background:var(--coral);color:#fff;border-radius:20px;padding:3px 12px;font-size:.7rem;font-weight:700;white-space:nowrap;}
.pkg-emoji{font-size:2.2rem;margin-bottom:8px;display:block}
.pkg-coins{font-family:'Syne',sans-serif;font-size:1.6rem;font-weight:800;color:var(--violet)}
.pkg-coins span{font-size:.9rem;font-weight:400;color:var(--muted)}
.pkg-price{font-size:.92rem;font-weight:700;color:var(--text);margin-top:4px}
.pkg-bonus{font-size:.72rem;color:var(--green);font-weight:600;margin-top:2px}
.shop-info-cards{display:flex;flex-direction:column;gap:10px;padding:0 16px 20px;}
.sic{background:#fff;border-radius:16px;padding:14px 16px;display:flex;align-items:center;gap:14px;box-shadow:0 2px 10px rgba(0,0,0,.05);}
.sic-emoji{font-size:1.8rem;flex-shrink:0}
.sic-text p:first-child{font-weight:700;font-size:.88rem;color:var(--text)}
.sic-text p:last-child{font-size:.78rem;color:var(--muted);margin-top:2px}

/* ═══════════════════════ FEDAPAY MODAL ═══════════════════════ */
.fedapay-modal{position:absolute;inset:0;background:rgba(10,0,20,.85);backdrop-filter:blur(16px);z-index:95;display:none;align-items:center;justify-content:center;padding:20px;}
.fedapay-modal.on{display:flex}
.fedapay-card{background:#fff;border-radius:24px;width:100%;max-width:360px;overflow:hidden}
.fedapay-card-hdr{background:linear-gradient(135deg,#3D1A5B,#7C3AED);padding:20px;color:#fff;text-align:center;}
.fedapay-logo{font-family:'Syne',sans-serif;font-size:1.2rem;font-weight:800;margin-bottom:3px}
.fedapay-amount{font-size:1.8rem;font-weight:800;color:#FFC947}
.fedapay-card-body{padding:20px}
.fp-label{font-size:.78rem;color:var(--muted);font-weight:600;margin-bottom:6px}
.fp-field{width:100%;padding:13px 16px;border:1.5px solid var(--border);border-radius:12px;font-size:.9rem;font-family:'Plus Jakarta Sans',sans-serif;color:var(--text);outline:none;margin-bottom:12px;background:#FAFAFA;}
.fp-field:focus{border-color:var(--violet);background:#fff}
.fp-methods{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}
.fp-method{border:1.5px solid var(--border);border-radius:10px;padding:10px;text-align:center;cursor:pointer;transition:all .2s;font-size:.8rem;}
.fp-method:hover{border-color:var(--violet)}
.fp-method.on{border-color:var(--violet);background:rgba(124,58,237,.06)}
.fp-method span:first-child{display:block;font-size:1.4rem;margin-bottom:3px}
.fp-pay-btn{width:100%;padding:15px;border:none;border-radius:14px;background:linear-gradient(135deg,#3D1A5B,#7C3AED);color:#fff;font-size:1rem;font-weight:700;font-family:'Plus Jakarta Sans',sans-serif;cursor:pointer;margin-bottom:10px;}
.fp-cancel-btn{width:100%;padding:12px;border:none;border-radius:14px;background:var(--bg);color:var(--muted);font-size:.9rem;font-family:'Plus Jakarta Sans',sans-serif;cursor:pointer;}
.fp-redirect-info{font-size:.75rem;color:var(--muted);text-align:center;margin-top:8px;line-height:1.4}

/* ═══════════════════════ VERIFY ═══════════════════════ */
#s-verify{background:var(--card-bg);justify-content:flex-start;align-items:stretch;padding:50px 28px 30px;overflow-y:auto;}
.verify-hdr{display:flex;align-items:center;gap:14px;margin-bottom:28px}
.verify-back{background:var(--bg);border:none;width:42px;height:42px;border-radius:12px;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.verify-title{font-family:'Syne',sans-serif;font-size:1.3rem;font-weight:800;color:var(--text)}
.verify-steps{display:flex;gap:6px;margin-bottom:30px}
.vs-dot{height:5px;border-radius:3px;background:var(--border);flex:1;transition:background .3s}
.vs-dot.on{background:var(--green)}
.vstep{display:none;flex-direction:column;align-items:center;width:100%}
.vstep.on{display:flex}
.vstep-icon{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2.5rem;margin:0 auto 16px;}
.vstep-h{font-size:1.4rem;font-weight:700;color:var(--text);text-align:center;margin-bottom:8px}
.vstep-sub{color:var(--muted);text-align:center;font-size:.9rem;margin-bottom:28px;line-height:1.5}
.verify-cost{background:linear-gradient(135deg,rgba(124,58,237,.08),rgba(255,111,89,.06));border:1px solid var(--border);border-radius:16px;padding:16px 20px;width:100%;display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;}
.vc-label{font-size:.85rem;color:var(--muted)}
.vc-amount{display:flex;align-items:center;gap:6px;font-weight:700;color:var(--text)}
.challenge-card{background:var(--grad);border-radius:20px;padding:24px;text-align:center;color:#fff;width:100%;margin-bottom:24px;}
.challenge-emoji{font-size:3.5rem;display:block;margin-bottom:10px;animation:bounce 1.5s ease infinite}
@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.challenge-text{font-family:'Syne',sans-serif;font-size:1.3rem;font-weight:800;margin-bottom:5px}
.challenge-hint{font-size:.82rem;opacity:.8}
.camera-preview{width:200px;height:200px;border-radius:50%;border:3px solid var(--violet);overflow:hidden;background:#000;margin:0 auto 20px;position:relative;}
.camera-preview video{width:100%;height:100%;object-fit:cover}
.camera-preview canvas{position:absolute;inset:0;width:100%;height:100%;opacity:0}
.btn-verify{width:100%;padding:16px;border:none;border-radius:14px;background:var(--grad);color:#fff;font-size:1rem;font-weight:700;font-family:'Plus Jakarta Sans',sans-serif;cursor:pointer;}
.btn-verify:disabled{opacity:.5;cursor:default}
.verify-analyzing{display:flex;flex-direction:column;align-items:center;gap:12px}
.verify-spinner{width:60px;height:60px;border-radius:50%;border:4px solid var(--border);border-top-color:var(--violet);animation:spin2 1s linear infinite;margin:20px auto;}
@keyframes spin2{to{transform:rotate(360deg)}}

/* ═══════════════════════ VIDEO CALL ═══════════════════════ */
#s-video{background:#0A0014;justify-content:flex-start;align-items:stretch;position:relative;overflow:hidden;}
#s-video::after{content:attr(data-user);position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:1.8rem;font-weight:800;color:rgba(255,255,255,.04);pointer-events:none;z-index:5;transform:rotate(-25deg);letter-spacing:2px;font-family:'Syne',sans-serif;background:repeating-linear-gradient(-45deg,transparent,transparent 100px,rgba(255,255,255,.02) 100px,rgba(255,255,255,.02) 101px);}
.video-remote{position:absolute;inset:0;background:#0A0014;display:flex;align-items:center;justify-content:center;}
#remote-container{width:100%;height:100%;background:#1a0a2e}
#remote-container.blurred>div>video{filter:blur(20px) !important;transition:filter .8s;}
#remote-container.clear>div>video{filter:blur(0) !important;transition:filter .8s;}
.video-local{position:absolute;bottom:160px;right:16px;width:110px;height:150px;border-radius:16px;overflow:hidden;border:2.5px solid rgba(255,255,255,.2);z-index:10;box-shadow:0 8px 30px rgba(0,0,0,.5);}
#local-container{width:100%;height:100%;background:#000}
#local-container.blurred>div>video{filter:blur(20px) !important;transition:filter .8s;}
#local-container.clear>div>video{filter:blur(0) !important;transition:filter .8s;}
.video-hdr{position:absolute;top:0;left:0;right:0;padding:16px 16px 14px;background:linear-gradient(to bottom,rgba(0,0,0,.7),transparent);z-index:15;display:flex;align-items:center;justify-content:space-between;}
.vh-left{display:flex;align-items:center;gap:10px}
.vh-avatar{width:40px;height:40px;border-radius:50%;background-size:cover;background-position:center;border:2px solid rgba(255,255,255,.3);}
.vh-name{color:#fff;font-weight:700;font-size:.95rem}
.vh-status{font-size:.72rem;color:rgba(255,255,255,.6)}
.vh-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.vh-timer{background:rgba(0,0,0,.5);border-radius:20px;padding:6px 14px;color:#fff;font-family:'Syne',sans-serif;font-weight:700;font-size:.95rem;display:flex;align-items:center;gap:6px;}
.timer-dot{width:8px;height:8px;border-radius:50%;background:#EF4444;animation:blink 1s infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}
/* Coin cost per min display */
.vh-cost{background:rgba(255,201,71,.2);border:1px solid rgba(255,201,71,.4);border-radius:20px;padding:4px 10px;color:#FFC947;font-size:.72rem;font-weight:700;}
.blur-accept-bar{position:absolute;bottom:155px;left:50%;transform:translateX(-50%);background:rgba(124,58,237,.95);backdrop-filter:blur(10px);border-radius:30px;padding:10px 20px;display:flex;align-items:center;gap:10px;z-index:20;white-space:nowrap;transition:opacity .4s;}
.blur-accept-bar.hidden{opacity:0;pointer-events:none}
.blur-accept-bar span{color:#fff;font-size:.82rem;font-weight:600}
.blur-accept-btn{background:#fff;border:none;border-radius:20px;padding:6px 14px;font-size:.8rem;font-weight:700;color:var(--violet);cursor:pointer;}
.mod-alert{position:absolute;top:80px;left:50%;transform:translateX(-50%);background:rgba(239,68,68,.95);backdrop-filter:blur(10px);border-radius:14px;padding:12px 20px;color:#fff;z-index:30;display:none;text-align:center;max-width:280px;}
.mod-alert.on{display:block}
.video-controls{position:absolute;bottom:40px;left:0;right:0;display:flex;justify-content:center;gap:16px;z-index:20;}
.vc-btn{width:60px;height:60px;border-radius:50%;border:none;background:rgba(255,255,255,.18);backdrop-filter:blur(10px);color:#fff;font-size:1.4rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;}
.vc-btn:hover{background:rgba(255,255,255,.28);transform:scale(1.08)}
.vc-btn.end{background:rgba(239,68,68,.9);width:70px;height:70px;font-size:1.6rem;}
.vc-btn.end:hover{background:rgba(239,68,68,1)}
.vc-btn.on{background:rgba(124,58,237,.8)}
/* Verified gate overlay */
.verified-gate{position:absolute;inset:0;background:rgba(10,0,20,.92);z-index:50;display:none;flex-direction:column;align-items:center;justify-content:center;padding:32px;text-align:center;}
.verified-gate.on{display:flex}
.vg-icon{font-size:4rem;margin-bottom:16px}
.vg-h{font-family:'Syne',sans-serif;font-size:1.5rem;font-weight:800;color:#fff;margin-bottom:8px}
.vg-sub{color:rgba(255,255,255,.65);font-size:.9rem;line-height:1.6;margin-bottom:28px}
.vg-btn{padding:14px 28px;background:var(--grad);border:none;border-radius:14px;color:#fff;font-size:1rem;font-weight:700;font-family:'Plus Jakarta Sans',sans-serif;cursor:pointer;margin-bottom:10px;}
.vg-btn-s{padding:12px 24px;background:transparent;border:1px solid rgba(255,255,255,.25);border-radius:14px;color:rgba(255,255,255,.7);font-size:.9rem;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;}
/* Camera permission gate */
.cam-gate{position:absolute;inset:0;background:rgba(10,0,20,.95);z-index:60;display:none;flex-direction:column;align-items:center;justify-content:center;padding:32px;text-align:center;}
.cam-gate.on{display:flex}
/* Incoming call */
.incoming-call{position:absolute;inset:0;background:linear-gradient(135deg,#3D1A5B,#1a0a2e);z-index:80;display:none;flex-direction:column;align-items:center;justify-content:center;padding:30px;}
.incoming-call.on{display:flex}
.ic-av{width:100px;height:100px;border-radius:50%;background-size:cover;background-position:center;border:4px solid rgba(255,255,255,.3);margin-bottom:16px;animation:icRing 1.5s ease infinite;}
@keyframes icRing{0%,100%{box-shadow:0 0 0 0 rgba(124,58,237,.6)}50%{box-shadow:0 0 0 20px rgba(124,58,237,0)}}
.ic-name{font-family:'Syne',sans-serif;font-size:1.6rem;font-weight:800;color:#fff;margin-bottom:4px}
.ic-status{color:rgba(255,255,255,.6);font-size:.9rem;margin-bottom:48px}
.ic-btns{display:flex;gap:32px}
.ic-accept{width:68px;height:68px;border-radius:50%;background:#22C55E;border:none;font-size:1.8rem;cursor:pointer;box-shadow:0 8px 24px rgba(34,197,94,.4);}
.ic-reject{width:68px;height:68px;border-radius:50%;background:#EF4444;border:none;font-size:1.8rem;cursor:pointer;box-shadow:0 8px 24px rgba(239,68,68,.4);}

/* ═══════════════════════ DAILY CHECK-IN ═══════════════════════ */
.checkin-modal{position:absolute;inset:0;background:rgba(10,0,20,.82);backdrop-filter:blur(16px);z-index:92;display:none;align-items:center;justify-content:center;padding:20px;}
.checkin-modal.on{display:flex}
.checkin-card{background:#fff;border-radius:28px;width:100%;max-width:360px;padding:32px 24px;text-align:center;}
.checkin-title{font-family:'Syne',sans-serif;font-size:1.6rem;font-weight:800;color:var(--text);margin-bottom:6px}
.checkin-sub{color:var(--muted);font-size:.88rem;margin-bottom:24px}
.checkin-streak{background:var(--grad);border-radius:20px;padding:14px;color:#fff;margin-bottom:24px;}
.streak-num{font-family:'Syne',sans-serif;font-size:3rem;font-weight:800;line-height:1}
.streak-label{font-size:.82rem;opacity:.8;margin-top:4px}
.checkin-days{display:flex;gap:8px;justify-content:center;margin-bottom:24px}
.day-dot{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;border:2px solid var(--border);}
.day-dot.done{background:var(--violet);border-color:var(--violet);color:#fff}
.day-dot.today{background:var(--coral);border-color:var(--coral);color:#fff;animation:pulse 1.5s ease infinite}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
.checkin-reward{background:rgba(255,201,71,.1);border:1px solid rgba(255,201,71,.3);border-radius:16px;padding:14px;margin-bottom:24px;}
.cr-label{font-size:.8rem;color:var(--muted);margin-bottom:4px}
.cr-amount{font-family:'Syne',sans-serif;font-size:1.6rem;font-weight:800;color:var(--gold)}
.checkin-btn{width:100%;padding:16px;border:none;border-radius:14px;background:var(--grad);color:#fff;font-size:1rem;font-weight:700;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;}

/* ═══════════════════════ FORTUNE WHEEL ═══════════════════════ */
#s-wheel{background:linear-gradient(135deg,#1E0A3C,#3D1A5B);justify-content:flex-start;align-items:center;overflow:hidden;}
.wheel-hdr{width:100%;padding:20px 16px 14px;display:flex;align-items:center;gap:14px;}
.wheel-back{background:rgba(255,255,255,.12);border:none;width:42px;height:42px;border-radius:12px;font-size:1.2rem;cursor:pointer;color:#fff;display:flex;align-items:center;justify-content:center;}
.wheel-title{font-family:'Syne',sans-serif;font-size:1.3rem;font-weight:800;color:#fff}
.wheel-subtitle{color:rgba(255,255,255,.6);font-size:.82rem;margin-bottom:24px;padding:0 20px;text-align:center}
.wheel-wrap{position:relative;margin-bottom:24px}
.wheel-pointer{position:absolute;top:-18px;left:50%;transform:translateX(-50%);font-size:2rem;z-index:10;filter:drop-shadow(0 4px 12px rgba(0,0,0,.5))}
canvas#wheel-canvas{border-radius:50%;box-shadow:0 20px 60px rgba(0,0,0,.6),0 0 0 6px rgba(255,255,255,.08);}
.wheel-btn{padding:16px 40px;border:none;border-radius:30px;background:var(--grad-gold);color:#fff;font-family:'Syne',sans-serif;font-size:1.1rem;font-weight:800;cursor:pointer;box-shadow:0 8px 30px rgba(255,201,71,.4);transition:transform .15s,opacity .2s;}
.wheel-btn:hover{transform:scale(1.05)}
.wheel-btn:disabled{opacity:.5;cursor:default;transform:none}
.wheel-cooldown{color:rgba(255,255,255,.5);font-size:.85rem;margin-top:14px;text-align:center}
.wheel-result-overlay{position:absolute;inset:0;background:rgba(10,0,20,.88);backdrop-filter:blur(16px);z-index:20;display:none;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:32px;}
.wheel-result-overlay.on{display:flex}
.wr-emoji{font-size:5rem;margin-bottom:16px;animation:bounceIn .5s cubic-bezier(.34,1.56,.64,1)}
@keyframes bounceIn{from{transform:scale(0)}to{transform:scale(1)}}
.wr-title{font-family:'Syne',sans-serif;font-size:1.8rem;font-weight:800;color:#fff;margin-bottom:8px}
.wr-sub{color:rgba(255,255,255,.7);font-size:.95rem;margin-bottom:28px}
.wr-close{padding:14px 32px;background:var(--grad);border:none;border-radius:14px;color:#fff;font-size:1rem;font-weight:700;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;}

/* ═══════════════════════ LEGAL ═══════════════════════ */
#s-legal{background:var(--card-bg);justify-content:flex-start;align-items:stretch;overflow-y:auto;}
.legal-hdr{padding:50px 20px 16px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:14px;position:sticky;top:0;z-index:5;}
.legal-back{background:var(--bg);border:none;width:42px;height:42px;border-radius:12px;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.legal-title{font-family:'Syne',sans-serif;font-size:1.2rem;font-weight:800;color:var(--text)}
.legal-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);background:#fff;}
.legal-tab{flex:1;padding:12px 8px;text-align:center;font-size:.82rem;font-weight:600;color:var(--muted);cursor:pointer;border-bottom:3px solid transparent;transition:all .2s;}
.legal-tab.on{color:var(--violet);border-bottom-color:var(--violet)}
.legal-content{padding:24px 20px;line-height:1.8;color:var(--text);font-size:.88rem;}
.legal-content h3{font-family:'Syne',sans-serif;font-size:1.1rem;font-weight:800;color:var(--text);margin:20px 0 8px}
.legal-content p{color:#4a4a6a;margin-bottom:12px}
.legal-content ul{padding-left:20px;margin-bottom:12px}
.legal-content li{margin-bottom:6px;color:#4a4a6a}

/* ═══════════════════════ SCREENSHOT PREVENTION ═══════════════════════ */
#screenshot-warning{position:absolute;inset:0;background:rgba(10,0,20,.95);z-index:200;display:none;flex-direction:column;align-items:center;justify-content:center;padding:40px;text-align:center;}
#screenshot-warning.on{display:flex}
.sw-icon{font-size:4rem;margin-bottom:16px}
.sw-h{font-family:'Syne',sans-serif;font-size:1.6rem;font-weight:800;color:#fff;margin-bottom:10px}
.sw-sub{color:rgba(255,255,255,.65);font-size:.9rem;line-height:1.6;margin-bottom:28px}
.sw-dismiss{padding:14px 32px;background:var(--grad);border:none;border-radius:14px;color:#fff;font-size:1rem;font-weight:700;font-family:'Plus Jakarta Sans',sans-serif;cursor:pointer;}

/* ═══════════════════════ SCROLLBAR ═══════════════════════ */
::-webkit-scrollbar{width:4px;height:4px}
::-webkit-scrollbar-thumb{background:#DDD;border-radius:2px}

/* ═══════════════════════ v8: SCREEN SHAKE ═══════════════════════ */
@keyframes screenShake{
  0%,100%{transform:translate(0,0) rotate(0)}
  10%{transform:translate(-6px,-4px) rotate(-.5deg)}
  20%{transform:translate(6px,4px) rotate(.5deg)}
  30%{transform:translate(-8px,2px) rotate(-.5deg)}
  40%{transform:translate(8px,-2px) rotate(.5deg)}
  50%{transform:translate(-6px,4px) rotate(-.25deg)}
  60%{transform:translate(6px,-4px) rotate(.25deg)}
  70%{transform:translate(-4px,2px) rotate(0)}
  80%{transform:translate(4px,-2px) rotate(0)}
  90%{transform:translate(-2px,1px) rotate(0)}
}
.shake{animation:screenShake .7s ease-out !important}

/* ═══════════════════════ v8: PREMIUM GIFT OVERLAY ═══════════════════════ */
.premium-gift-overlay{
  position:absolute;inset:0;z-index:150;pointer-events:none;
  display:none;align-items:center;justify-content:center;
  flex-direction:column;
}
.premium-gift-overlay.on{display:flex}
/* Émeraude Royale overlay */
.emeraude-overlay{background:rgba(0,80,20,.0)}
/* Diamant UniQ overlay */
.diamant-overlay{
  background:radial-gradient(ellipse at center,rgba(59,130,246,.15) 0%,rgba(10,0,20,.0) 70%);
}
.diamant-center{
  animation:diamantPop .6s cubic-bezier(.34,1.56,.64,1);
  display:flex;flex-direction:column;align-items:center;gap:16px;
}
@keyframes diamantPop{from{transform:scale(0) rotate(-180deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}
.diamant-3d{
  width:140px;height:140px;position:relative;
  animation:diamantSpin 3s ease-in-out forwards;
}
@keyframes diamantSpin{
  0%{transform:rotateY(0) scale(1)}
  30%{transform:rotateY(180deg) scale(1.2)}
  60%{transform:rotateY(360deg) scale(1.1)}
  100%{transform:rotateY(720deg) scale(1)}
}
.diamant-emoji-big{font-size:7rem;filter:drop-shadow(0 0 30px rgba(59,130,246,.9)) drop-shadow(0 0 60px rgba(124,58,237,.7));}
.diamant-glow-ring{
  position:absolute;inset:-20px;
  border-radius:50%;
  background:conic-gradient(from 0deg,#3B82F6,#7C3AED,#60A5FA,#A78BFA,#3B82F6);
  animation:glowRingSpin 2s linear forwards;
  opacity:.6;filter:blur(8px);z-index:-1;
}
@keyframes glowRingSpin{0%{transform:rotate(0)}100%{transform:rotate(720deg);opacity:0}}
.diamant-label{
  font-family:'Syne',sans-serif;font-size:1.6rem;font-weight:800;
  color:#fff;text-shadow:0 0 20px rgba(59,130,246,.8);
  animation:fadeInUp .5s .3s both;
}
@keyframes fadeInUp{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}
.diamant-sub{color:rgba(255,255,255,.75);font-size:.9rem;animation:fadeInUp .5s .5s both}
/* Prestige overlay */
.prestige-overlay{background:rgba(0,0,0,0)}
.prestige-center{
  display:flex;flex-direction:column;align-items:center;gap:12px;
  animation:diamantPop .5s cubic-bezier(.34,1.56,.64,1);
}
.prestige-emoji{font-size:6rem;filter:drop-shadow(0 0 24px rgba(255,201,71,.9));animation:crownBob 1.5s ease-in-out 3}
@keyframes crownBob{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-10px) scale(1.1)}}
.prestige-label{font-family:'Syne',sans-serif;font-size:1.5rem;font-weight:800;background:linear-gradient(135deg,#FFC947,#FF6F59);-webkit-background-clip:text;-webkit-text-fill-color:transparent;}
.prestige-sub{color:rgba(255,255,255,.7);font-size:.85rem}

/* ═══════════════════════ v8: ELITE SHOP PACKS ═══════════════════════ */
.coin-packages{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 14px 14px}
.coin-pkg.elite{
  grid-column:span 2;
  background:linear-gradient(135deg,#1E0A3C,#3D1A5B);
  border:2px solid transparent;
  background-clip:padding-box;
  position:relative;
  padding:18px 16px;
}
.coin-pkg.elite::before{
  content:'';position:absolute;inset:-2px;border-radius:20px;
  background:linear-gradient(135deg,#FFC947,#FF6F59,#7C3AED,#FFC947);
  z-index:-1;animation:borderGlow 3s linear infinite;
}
@keyframes borderGlow{0%,100%{filter:hue-rotate(0deg)}50%{filter:hue-rotate(60deg)}}
.coin-pkg.elite .pkg-coins{font-size:1.5rem}
.coin-pkg.elite .pkg-price{font-size:1rem;font-weight:700}
.elite-row{display:flex;justify-content:space-between;align-items:center;width:100%}
.elite-badge{background:var(--grad-gold);border-radius:20px;padding:3px 10px;font-size:.7rem;font-weight:800;color:#fff}
.elite-bonus-tag{background:rgba(34,197,94,.15);border:1px solid rgba(34,197,94,.3);border-radius:20px;padding:3px 10px;font-size:.72rem;color:#22C55E;font-weight:700}

/* ═══════════════════════ v8: WALLET CARD (compact) ═══════════════════════ */
.wallet-card{
  margin:0 14px 10px;border-radius:16px;
  background:#fff;border:1.5px solid var(--border);
  padding:11px 14px;
  transition:all .4s ease;
  position:relative;overflow:hidden;
}
/* Grise sobre quand solde = 0 */
.wallet-card.empty{
  background:#fff;border-color:var(--border);
}
/* Brillante quand solde ≥ 250 coins */
.wallet-card.rich{
  background:linear-gradient(135deg,#065F46,#047857);
  border-color:transparent;
  box-shadow:0 4px 18px rgba(6,95,70,.35);
  animation:walletGlow 3s ease-in-out infinite;
}
@keyframes walletGlow{
  0%,100%{box-shadow:0 4px 18px rgba(34,197,94,.35)}
  50%{box-shadow:0 6px 28px rgba(34,197,94,.6),0 0 0 2px rgba(34,197,94,.15)}
}
.wallet-card.rich::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(255,255,255,.06) 0%,transparent 60%);
  pointer-events:none;
}
.wallet-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.wallet-left{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.wallet-icon-wrap{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0;}
.wallet-card.empty  .wallet-icon-wrap{background:var(--bg)}
.wallet-card.rich   .wallet-icon-wrap{background:rgba(255,255,255,.15)}
.wallet-info{flex:1;min-width:0}
.wallet-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.wallet-card.empty .wallet-label{color:var(--muted)}
.wallet-card.rich  .wallet-label{color:rgba(255,255,255,.7)}
.wallet-coins-val{font-family:'Syne',sans-serif;font-size:1.05rem;font-weight:800;white-space:nowrap}
.wallet-card.empty .wallet-coins-val{color:var(--text)}
.wallet-card.rich  .wallet-coins-val{color:#fff}
.wallet-sub{font-size:.68rem;margin-top:1px;white-space:nowrap}
.wallet-card.empty .wallet-sub{color:var(--muted)}
.wallet-card.rich  .wallet-sub{color:rgba(255,255,255,.65)}
.wallet-withdraw-btn{
  flex-shrink:0;padding:7px 13px;border:none;border-radius:10px;
  font-size:.76rem;font-weight:700;
  font-family:'Plus Jakarta Sans',sans-serif;cursor:pointer;
  transition:opacity .2s,transform .15s;white-space:nowrap;
}
.wallet-card.empty .wallet-withdraw-btn{
  background:var(--bg);color:var(--muted);border:1px solid var(--border);
}
.wallet-card.rich .wallet-withdraw-btn{
  background:rgba(255,255,255,.18);color:#fff;
  box-shadow:0 2px 8px rgba(0,0,0,.15);
}
.wallet-withdraw-btn:hover:not(:disabled){transform:scale(1.04)}
.wallet-withdraw-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}

/* ═══════════════════════ v8: WITHDRAWAL SCREEN ═══════════════════════ */
#s-withdraw{background:var(--bg);justify-content:flex-start;align-items:stretch;overflow-y:auto}
.wd-hdr{background:#fff;padding:50px 20px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:14px;position:sticky;top:0;z-index:5}
.wd-back{background:var(--bg);border:none;width:42px;height:42px;border-radius:12px;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center}
.wd-title{font-family:'Syne',sans-serif;font-size:1.2rem;font-weight:800;color:var(--text)}
.wd-body{padding:16px}
.wd-balance-card{background:linear-gradient(135deg,#065F46,#047857);border-radius:20px;padding:20px;margin-bottom:16px;color:#fff}
.wd-bal-label{font-size:.8rem;opacity:.7;margin-bottom:4px}
.wd-bal-coins{font-family:'Syne',sans-serif;font-size:2.4rem;font-weight:800}

.wd-rate-info{background:rgba(255,255,255,.1);border-radius:10px;padding:8px 12px;margin-top:12px;font-size:.76rem;opacity:.8;display:flex;align-items:center;gap:6px}
.wd-conditions{background:#fff;border-radius:16px;padding:16px;margin-bottom:14px;border:1px solid var(--border)}
.wd-cond-h{font-weight:700;font-size:.9rem;color:var(--text);margin-bottom:10px;display:flex;align-items:center;gap:6px}
.wd-cond-item{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--border);font-size:.83rem}
.wd-cond-item:last-child{border-bottom:none}
.wd-cond-ok{color:var(--green);font-weight:700}
.wd-cond-no{color:var(--red);font-weight:700}
.wd-form{background:#fff;border-radius:16px;padding:16px;margin-bottom:14px;border:1px solid var(--border)}
.wd-form-h{font-weight:700;font-size:.9rem;color:var(--text);margin-bottom:12px}
.wd-label{font-size:.82rem;font-weight:600;color:var(--text);margin-bottom:5px;display:block}
.wd-input{width:100%;padding:13px 16px;border:1.5px solid var(--border);border-radius:12px;font-size:.92rem;font-family:'Plus Jakarta Sans',sans-serif;color:var(--text);background:#FAFAFA;outline:none;transition:border-color .2s;margin-bottom:10px;display:block}
.wd-input:focus{border-color:var(--green);background:#fff}
.wd-amount-preview{background:rgba(34,197,94,.07);border:1px solid rgba(34,197,94,.2);border-radius:12px;padding:12px 14px;margin-bottom:10px;font-size:.83rem;color:#065F46}
.wd-amount-row{display:flex;justify-content:space-between;align-items:center;padding:3px 0}
.wd-amount-row.total{font-weight:700;border-top:1px solid rgba(34,197,94,.2);margin-top:4px;padding-top:7px}
.wd-submit-btn{width:100%;padding:16px;border:none;border-radius:16px;background:linear-gradient(135deg,#22C55E,#16A34A);color:#fff;font-size:1rem;font-weight:700;font-family:'Plus Jakarta Sans',sans-serif;cursor:pointer;box-shadow:0 6px 20px rgba(34,197,94,.35);transition:opacity .2s,transform .15s}
.wd-submit-btn:hover:not(:disabled){transform:translateY(-2px)}
.wd-submit-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
.wd-security-note{text-align:center;color:var(--muted);font-size:.74rem;margin-top:10px;display:flex;align-items:center;justify-content:center;gap:4px}
.wd-history{background:#fff;border-radius:16px;padding:16px;border:1px solid var(--border)}
.wd-history-h{font-weight:700;font-size:.9rem;color:var(--text);margin-bottom:10px}
.wd-hist-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border);font-size:.83rem}
.wd-hist-item:last-child{border-bottom:none}
.wd-hist-status{padding:3px 8px;border-radius:20px;font-size:.7rem;font-weight:700}
.wd-hist-status.pending{background:rgba(251,191,36,.15);color:#D97706}
.wd-hist-status.completed{background:rgba(34,197,94,.15);color:#065F46}
.wd-hist-status.rejected{background:rgba(239,68,68,.15);color:#B91C1C}

/* ═══════════════════════ v8: GIFT GRID SCROLL ═══════════════════════ */
.gift-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:4px 0 12px;max-height:55vh;overflow-y:auto}
.gift-item.premium{border:2px solid var(--gold);background:linear-gradient(135deg,rgba(255,201,71,.08),rgba(255,111,89,.08))}
.gift-item.ultra{border:2px solid #3B82F6;background:linear-gradient(135deg,rgba(59,130,246,.08),rgba(124,58,237,.08))}
.gift-item.prestige-gift{border:2px solid #22C55E;background:linear-gradient(135deg,rgba(34,197,94,.08),rgba(6,95,70,.08))}
.gift-category-label{grid-column:span 3;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:6px 0 2px;border-top:1px solid var(--border);margin-top:4px}
.gift-category-label:first-child{border-top:none;margin-top:0}

/* ═══════════════════════ PAYMENT ROUTER MODAL (v7) ═══════════════════════ */
.pay-modal{position:absolute;inset:0;background:rgba(10,0,20,.82);backdrop-filter:blur(18px);z-index:95;display:none;align-items:flex-end;justify-content:center;padding:0;}
.pay-modal.on{display:flex}
.pay-sheet{background:#fff;border-radius:28px 28px 0 0;width:100%;max-height:92%;overflow-y:auto;padding:0 0 32px;}
.pay-sheet-drag{width:44px;height:5px;border-radius:3px;background:var(--border);margin:14px auto 0;}
.pay-sheet-hdr{padding:20px 22px 16px;border-bottom:1px solid var(--border);}
.pay-sheet-title{font-family:'Syne',sans-serif;font-size:1.25rem;font-weight:800;color:var(--text)}
.pay-sheet-sub{color:var(--muted);font-size:.82rem;margin-top:3px}
.pay-amount-badge{display:inline-flex;align-items:center;gap:6px;background:var(--grad);border-radius:30px;padding:6px 16px;margin-top:10px;}
.pay-amount-badge span{color:#fff;font-weight:700;font-size:1rem;font-family:'Syne',sans-serif}
.pay-amount-badge small{color:rgba(255,255,255,.75);font-size:.78rem}
/* Country detect banner */
.pay-country-banner{margin:14px 18px 0;border-radius:14px;background:rgba(124,58,237,.06);border:1px solid rgba(124,58,237,.15);padding:10px 14px;display:flex;align-items:center;gap:10px;font-size:.82rem;color:var(--text)}
.pay-country-flag{font-size:1.4rem;flex-shrink:0}
.pay-country-info b{font-weight:700;display:block;margin-bottom:1px}
.pay-country-info span{color:var(--muted);font-size:.76rem}
/* Aggregator selector */
.pay-agg-label{padding:16px 22px 8px;font-size:.8rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.pay-agg-list{padding:0 14px;display:flex;flex-direction:column;gap:9px}
.pay-agg-card{border-radius:16px;border:2px solid var(--border);background:#fff;padding:14px 16px;display:flex;align-items:center;gap:14px;cursor:pointer;transition:all .18s;}
.pay-agg-card:hover{border-color:var(--violet);background:rgba(124,58,237,.03)}
.pay-agg-card.selected{border-color:var(--violet);background:rgba(124,58,237,.06)}
.pay-agg-card.recommended{border-color:var(--gold)}
.pay-agg-card.recommended:hover,.pay-agg-card.recommended.selected{border-color:var(--gold);background:rgba(255,201,71,.07)}
.pay-agg-logo{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0;}
.pay-agg-logo.feda{background:linear-gradient(135deg,#1a1a5e,#4040c0)}
.pay-agg-logo.flutter{background:linear-gradient(135deg,#f5a623,#f76b1c)}
.pay-agg-logo.bizao{background:linear-gradient(135deg,#00b04f,#00632b)}
.pay-agg-info{flex:1}
.pay-agg-name{font-weight:700;font-size:.95rem;color:var(--text);margin-bottom:2px}
.pay-agg-desc{font-size:.76rem;color:var(--muted);line-height:1.4}
.pay-agg-radio{width:22px;height:22px;border-radius:50%;border:2px solid var(--border);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .18s;}
.pay-agg-card.selected .pay-agg-radio{border-color:var(--violet);background:var(--violet)}
.pay-agg-card.recommended.selected .pay-agg-radio{border-color:var(--gold);background:var(--gold)}
.pay-agg-radio::after{content:'';width:10px;height:10px;border-radius:50%;background:#fff;display:none;}
.pay-agg-card.selected .pay-agg-radio::after{display:block}
.pay-rec-tag{background:var(--gold);color:#fff;border-radius:20px;padding:2px 8px;font-size:.66rem;font-weight:800;margin-left:6px}
/* Phone input area */
.pay-phone-area{padding:14px 18px 0;display:none}
.pay-phone-area.on{display:block}
.pay-phone-label{font-size:.82rem;font-weight:600;color:var(--text);margin-bottom:6px}
.pay-phone-row{display:flex;gap:8px}
.pay-method-mini{display:flex;gap:7px;margin-bottom:10px;flex-wrap:wrap}
.pay-method-chip{padding:7px 13px;border-radius:20px;border:1.5px solid var(--border);background:#fff;font-size:.78rem;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;transition:all .15s;color:var(--text);display:flex;align-items:center;gap:5px;}
.pay-method-chip.on{background:var(--aubergine);color:#fff;border-color:var(--aubergine)}
.pay-field{flex:1;padding:13px 16px;border:1.5px solid var(--border);border-radius:12px;font-size:.92rem;font-family:'Plus Jakarta Sans',sans-serif;color:var(--text);background:#FAFAFA;outline:none;transition:border-color .2s;}
.pay-field:focus{border-color:var(--violet);background:#fff}
/* Bizao credit option */
.bizao-note{background:rgba(0,176,79,.07);border:1px solid rgba(0,176,79,.2);border-radius:12px;padding:10px 14px;font-size:.8rem;color:#004d22;margin-top:8px;display:none}
.bizao-note.on{display:block}
/* CTA */
.pay-cta-area{padding:18px 18px 0}
.pay-btn{width:100%;padding:17px;border:none;border-radius:16px;background:var(--grad);color:#fff;font-size:1rem;font-weight:700;font-family:'Plus Jakarta Sans',sans-serif;cursor:pointer;transition:opacity .2s,transform .15s;box-shadow:0 8px 24px rgba(124,58,237,.3);}
.pay-btn:disabled{opacity:.55;cursor:default;transform:none}
.pay-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 30px rgba(124,58,237,.4)}
.pay-cancel{display:block;text-align:center;margin-top:12px;color:var(--muted);font-size:.85rem;cursor:pointer;padding:8px;}
.pay-secure{text-align:center;margin-top:10px;color:var(--muted);font-size:.74rem;display:flex;align-items:center;justify-content:center;gap:5px}
/* Fallback notice */
.pay-fallback-notice{margin:10px 18px 0;border-radius:12px;background:rgba(239,68,68,.07);border:1px solid rgba(239,68,68,.2);padding:10px 14px;font-size:.78rem;color:#7f1d1d;display:none}
.pay-fallback-notice.on{display:block}
/* ═══════════════════════ BOOST SYSTEM v14 ═══════════════════════ */
/* --- Visibility bar --- */
.visibility-bar{background:#fff;padding:6px 14px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border);}
.vis-label{font-size:.72rem;color:var(--muted);font-weight:700;flex-shrink:0;white-space:nowrap}
.vis-track{flex:1;height:5px;background:var(--border);border-radius:3px;overflow:hidden}
.vis-fill{height:100%;border-radius:3px;transition:width 1s ease}
.vis-fill.high{background:var(--green)}.vis-fill.medium{background:var(--gold)}
.vis-fill.low{background:var(--red);animation:visPulse 1.5s ease-in-out infinite}
@keyframes visPulse{0%,100%{opacity:1}50%{opacity:.55}}
.vis-pct{font-size:.72rem;font-weight:800;flex-shrink:0}
.vis-pct.high{color:var(--green)}.vis-pct.medium{color:var(--gold)}.vis-pct.low{color:var(--red)}
/* --- Boost header button --- */
.boost-hdr-btn{display:flex;align-items:center;gap:3px;background:var(--grad);color:#fff;border:none;border-radius:20px;padding:5px 11px;font-size:.74rem;font-weight:700;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;white-space:nowrap;animation:boostBtnGlow 2.2s ease-in-out infinite}
@keyframes boostBtnGlow{0%,100%{box-shadow:0 2px 10px rgba(124,58,237,.4)}50%{box-shadow:0 4px 22px rgba(124,58,237,.75)}}
/* --- Boost active bar (swipe screen) --- */
.boost-active-bar{background:linear-gradient(90deg,#7C3AED,#FF6F59);padding:7px 16px;display:none;flex-direction:row;align-items:center;justify-content:space-between;}
.boost-active-bar.on{display:flex;animation:boostBarPulse 2.5s ease-in-out infinite}
@keyframes boostBarPulse{0%,100%{opacity:1}50%{opacity:.85}}
.boost-active-txt{color:#fff;font-size:.78rem;font-weight:700}
.boost-active-timer{color:#FFC947;font-family:'Syne',sans-serif;font-weight:800;font-size:.9rem}
/* --- Swipe nudge CTA bar --- */
.swipe-boost-cta{background:linear-gradient(90deg,rgba(124,58,237,.06),rgba(255,111,89,.06));border-bottom:1px solid rgba(124,58,237,.1);padding:7px 14px;display:none;align-items:center;justify-content:space-between;gap:10px}
.swipe-boost-cta.on{display:flex}
.sbc-txt{font-size:.75rem;color:var(--text);font-weight:600;flex:1}
.sbc-btn{background:var(--grad);color:#fff;border:none;border-radius:20px;padding:5px 12px;font-size:.73rem;font-weight:700;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;white-space:nowrap;flex-shrink:0}
/* --- Boost modal --- */
.boost-modal{position:absolute;inset:0;z-index:80;display:none;flex-direction:column;align-items:center;justify-content:flex-end;background:rgba(10,0,20,.65);backdrop-filter:blur(12px)}
.boost-modal.on{display:flex}
.boost-sheet{background:#fff;border-radius:28px 28px 0 0;padding:22px 18px 36px;width:100%;max-height:80vh;overflow-y:auto}
.boost-sheet-drag{width:40px;height:4px;border-radius:2px;background:var(--border);margin:0 auto 16px}
.boost-sheet-h{font-family:'Syne',sans-serif;font-size:1.3rem;font-weight:800;color:var(--text);text-align:center;margin-bottom:3px}
.boost-sheet-sub{color:var(--muted);font-size:.82rem;text-align:center;margin-bottom:16px;line-height:1.4}
.boost-opts{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.boost-opt{border:2px solid var(--border);border-radius:16px;padding:13px 14px;cursor:pointer;display:flex;align-items:center;gap:12px;transition:all .18s;background:#fff;width:100%;text-align:left;font-family:'Plus Jakarta Sans',sans-serif}
.boost-opt:hover{border-color:var(--violet);background:rgba(124,58,237,.03)}
.boost-opt.selected{border-color:var(--violet);background:rgba(124,58,237,.05);box-shadow:0 0 0 3px rgba(124,58,237,.1)}
.boost-opt.featured{border-color:var(--gold);background:linear-gradient(135deg,rgba(255,201,71,.07),rgba(255,111,89,.04))}
.boost-opt.featured.selected{border-color:var(--coral);box-shadow:0 0 0 3px rgba(255,111,89,.14)}
.boost-opt-icon{font-size:1.8rem;flex-shrink:0}
.boost-opt-info{flex:1;min-width:0}
.boost-opt-name{font-weight:700;font-size:.93rem;color:var(--text)}
.boost-opt-desc{font-size:.76rem;color:var(--muted);margin-top:2px}
.boost-opt-tag{font-size:.67rem;background:rgba(34,197,94,.1);color:var(--green);border-radius:20px;padding:1px 7px;font-weight:700;margin-top:4px;display:inline-block}
.boost-opt-price{font-family:'Syne',sans-serif;font-weight:800;font-size:1rem;color:var(--violet);flex-shrink:0}
.boost-opt.featured .boost-opt-price{color:var(--coral)}
.boost-missing-hint{text-align:center;color:var(--coral);font-size:.82rem;margin-bottom:10px;font-weight:600;padding:0 4px}
.boost-cta{width:100%;padding:16px;border:none;border-radius:16px;background:var(--grad);color:#fff;font-size:1rem;font-weight:700;font-family:'Plus Jakarta Sans',sans-serif;cursor:pointer;box-shadow:0 8px 24px rgba(124,58,237,.35);transition:opacity .2s,transform .15s}
.boost-cta:disabled{opacity:.45;cursor:not-allowed}
.boost-cta:hover:not(:disabled){transform:translateY(-2px)}
.boost-cancel-lnk{display:block;text-align:center;margin-top:11px;color:var(--muted);font-size:.84rem;cursor:pointer;padding:8px}
/* --- Boost badge on swipe card --- */
.boost-badge-card{position:absolute;top:14px;left:50%;transform:translateX(-50%);z-index:6;background:linear-gradient(135deg,#7C3AED,#FF6F59);border-radius:20px;padding:4px 12px;font-size:.72rem;font-weight:800;color:#fff;white-space:nowrap;animation:badgePulse 1.8s ease-in-out infinite}
@keyframes badgePulse{0%,100%{transform:translateX(-50%) scale(1)}50%{transform:translateX(-50%) scale(1.07)}}
/* --- Coins missing modal --- */
.coins-missing-modal{position:absolute;inset:0;z-index:90;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(10,0,20,.72);backdrop-filter:blur(14px)}
.coins-missing-modal.on{display:flex}
.coins-missing-card{background:#fff;border-radius:24px;padding:28px 22px;width:100%;text-align:center;box-shadow:0 24px 80px rgba(0,0,0,.3)}
.cm-icon{font-size:3rem;margin-bottom:10px}
.cm-h{font-family:'Syne',sans-serif;font-size:1.3rem;font-weight:800;color:var(--text);margin-bottom:5px}
.cm-sub{color:var(--muted);font-size:.87rem;margin-bottom:6px;line-height:1.5}
.cm-missing{font-size:1rem;font-weight:700;color:var(--coral);margin-bottom:18px;background:rgba(239,68,68,.06);border-radius:12px;padding:10px}
.cm-btns{display:flex;flex-direction:column;gap:9px}
.cm-buy{background:var(--grad);color:#fff;border:none;border-radius:14px;padding:15px;font-size:.97rem;font-weight:700;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif}
.cm-cancel{background:var(--bg);color:var(--muted);border:none;border-radius:14px;padding:13px;font-size:.88rem;font-weight:600;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif}
/* --- Boost section in shop --- */
.boost-shop-cards{padding:0 14px 14px}
.boost-pkg{border:2px solid var(--border);border-radius:18px;padding:13px 16px;margin-bottom:10px;display:flex;align-items:center;gap:12px;cursor:pointer;background:#fff;transition:all .2s;text-align:left;width:100%;font-family:'Plus Jakarta Sans',sans-serif}
.boost-pkg:hover{border-color:var(--violet);transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.08)}
.boost-pkg.hero{border-color:var(--gold);background:linear-gradient(135deg,rgba(255,201,71,.07),rgba(255,111,89,.04))}
.bpkg-icon{font-size:1.9rem;flex-shrink:0}
.bpkg-info{flex:1;min-width:0}
.bpkg-name{font-weight:700;font-size:.93rem;color:var(--text)}
.bpkg-desc{font-size:.77rem;color:var(--muted);margin-top:2px}
.bpkg-tag{font-size:.67rem;background:rgba(34,197,94,.1);color:var(--green);border-radius:20px;padding:1px 7px;font-weight:700;margin-top:4px;display:inline-block}
.bpkg-price{font-family:'Syne',sans-serif;font-weight:800;font-size:1rem;color:var(--violet);text-align:right;flex-shrink:0}
.bpkg-price small{font-size:.7rem;color:var(--muted);font-family:'Plus Jakarta Sans',sans-serif;font-weight:400;display:block}
.boost-pkg.hero .bpkg-price{color:var(--coral)}
/* --- Profile boost CTA --- */
.boost-profile-cta{margin:0 14px 10px;border-radius:18px;background:linear-gradient(135deg,#3D1A5B,#7C3AED);padding:14px 16px;display:flex;align-items:center;gap:12px;cursor:pointer;transition:transform .15s}
.boost-profile-cta:hover{transform:scale(1.01)}
.bpc-icon{font-size:2rem;flex-shrink:0}
.bpc-info{flex:1;min-width:0}
.bpc-info p:first-child{font-weight:700;color:#fff;font-size:.93rem}
.bpc-info p:last-child{font-size:.77rem;color:rgba(255,255,255,.6);margin-top:2px}
.bpc-btn{background:var(--grad-gold);border:none;border-radius:12px;padding:9px 13px;color:#fff;font-size:.77rem;font-weight:800;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;flex-shrink:0;white-space:nowrap}
/* --- Profile boost active indicator --- */
.boost-active-profile{margin:0 14px 8px;border-radius:14px;background:rgba(124,58,237,.07);border:1.5px dashed rgba(124,58,237,.3);padding:10px 14px;display:none;align-items:center;gap:10px}
.boost-active-profile.on{display:flex}
.bap-dot{width:9px;height:9px;border-radius:50%;background:var(--green);animation:blinkDot 1s ease-in-out infinite;flex-shrink:0}
@keyframes blinkDot{0%,100%{opacity:1}50%{opacity:.2}}
.bap-text{flex:1;font-size:.82rem;color:var(--text);font-weight:600}
.bap-timer-txt{font-family:'Syne',sans-serif;font-weight:800;color:var(--violet);font-size:.88rem}
/* --- Premium msg button in chat --- */
.premium-msg-btn{background:linear-gradient(135deg,#7C3AED,#FF6F59);color:#fff;border:none;border-radius:20px;padding:6px 12px;font-size:.75rem;font-weight:700;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;white-space:nowrap;display:flex;align-items:center;gap:4px}
/* --- Shop premium msg info card --- */
.sic-highlight{background:linear-gradient(135deg,rgba(124,58,237,.06),rgba(255,111,89,.04));border:1.5px solid rgba(124,58,237,.18) !important}


/* ── Boost urgency bar ── */
.boost-urgency-bar{
  display:flex;justify-content:space-between;align-items:center;
  background:rgba(239,68,68,.07);border:1px solid rgba(239,68,68,.18);
  border-radius:12px;padding:8px 14px;margin:0 0 16px;gap:10px;flex-wrap:wrap;
}
.boost-urgency-live{font-size:.78rem;font-weight:700;color:#EF4444}
.boost-urgency-offer{font-size:.74rem;font-weight:700;color:var(--coral);
  background:rgba(255,111,89,.1);border-radius:20px;padding:3px 10px;}

/* ── Vibes like-teaser notification ── */
.like-teaser-card{
  margin:0 14px 12px;border-radius:16px;
  background:linear-gradient(135deg,rgba(124,58,237,.08),rgba(255,111,89,.06));
  border:1.5px solid rgba(124,58,237,.25);
  padding:13px 16px;display:flex;align-items:center;gap:12px;cursor:pointer;
  animation:teaserPulse 2.5s ease-in-out infinite;
}
@keyframes teaserPulse{0%,100%{box-shadow:0 0 0 0 rgba(124,58,237,.15)}50%{box-shadow:0 0 0 6px rgba(124,58,237,0)}}
.lt-avatars{display:flex;position:relative;flex-shrink:0}
.lt-av{width:40px;height:40px;border-radius:50%;background-size:cover;background-position:center;border:2px solid #fff;filter:blur(5px);}
.lt-av:nth-child(2){margin-left:-14px}
.lt-lock{position:absolute;bottom:-4px;right:-6px;background:var(--violet);border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:.7rem;border:2px solid #fff;}
.lt-text{flex:1}
.lt-text p:first-child{font-weight:700;font-size:.9rem;color:var(--text)}
.lt-text p:last-child{font-size:.77rem;color:var(--muted);margin-top:2px}
.lt-cta{background:var(--grad);border:none;border-radius:12px;padding:8px 13px;color:#fff;font-size:.76rem;font-weight:800;cursor:pointer;font-family:"Plus Jakarta Sans",sans-serif;flex-shrink:0;white-space:nowrap;}

/* ── Gamification: Top profil du jour + badge Populaire (swipe) ── */
.top-profile-banner{
  margin:0 14px 10px;border-radius:14px;
  background:linear-gradient(135deg,#7C3AED,#FF6F59);
  padding:10px 16px;display:flex;align-items:center;gap:10px;
}
.tpb-icon{font-size:1.6rem;flex-shrink:0}
.tpb-text p:first-child{font-weight:800;font-size:.88rem;color:#fff}
.tpb-text p:last-child{font-size:.74rem;color:rgba(255,255,255,.7);margin-top:1px}

/* ── User level badge in profile header ── */
.user-level-banner{
  margin:0 14px 10px;border-radius:14px;
  background:#fff;border:1.5px solid var(--border);
  padding:11px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px;
}
.ulb-left{display:flex;align-items:center;gap:10px}
.ulb-icon{font-size:1.5rem;flex-shrink:0}
.ulb-info p:first-child{font-weight:700;font-size:.88rem;color:var(--text)}
.ulb-info p:last-child{font-size:.75rem;color:var(--muted);margin-top:1px}
.ulb-xp-bar-wrap{flex:1;max-width:90px;background:var(--border);border-radius:4px;height:6px;overflow:hidden}
.ulb-xp-fill{height:100%;border-radius:4px;background:var(--grad);transition:width .5s ease}

/* ── Badge Populaire on card ── */
.boost-badge-card{
  position:absolute;top:14px;right:14px;z-index:6;
  background:rgba(239,68,68,.9);backdrop-filter:blur(8px);color:#fff;
  border-radius:20px;padding:4px 10px;font-size:.72rem;font-weight:700;
  display:flex;align-items:center;gap:4px;
}
