SCREEN: CHAT LIST
════════════════════════════════════════════ */
.chat-list-item{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.04);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s;}
.chat-list-item:active{background:var(--card);}
.cli-av-wrap{position:relative;flex-shrink:0;}
.cli-ring{position:absolute;inset:-2px;border-radius:50%;background:var(--grad);padding:2px;}
.cli-ring-inner{width:100%;height:100%;border-radius:50%;background:var(--black);}
.cli-av{width:46px;height:46px;border-radius:50%;position:relative;z-index:1;display:flex;align-items:center;justify-content:center;font-size:18px;}
.cli-online{position:absolute;bottom:1px;right:1px;width:11px;height:11px;border-radius:50%;background:var(--green);border:2px solid var(--black);z-index:2;}
.cli-info{flex:1;min-width:0;}
.cli-name{font-weight:600;font-size:14px;display:flex;align-items:center;gap:6px;margin-bottom:3px;}
.cli-preview{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cli-gift-preview{display:inline-flex;align-items:center;gap:4px;background:rgba(245,197,66,.08);border:1px solid rgba(245,197,66,.15);border-radius:100px;padding:2px 8px;font-size:11px;}
.cli-meta{display:flex;flex-direction:column;align-items:flex-end;gap:5px;}
.cli-time{font-size:11px;color:var(--muted2);}
.cli-badge{width:18px;height:18px;border-radius:50%;background:var(--purp);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff;}

/* ════════════════════════════════════════════
   SCREEN: CHAT ROOM
════════════════════════════════════════════ */
.chat-header{background:rgba(4,4,10,.92);backdrop-filter:blur(24px);border-bottom:1px solid var(--border);padding:13px 14px;display:flex;align-items:center;gap:11px;flex-shrink:0;position:sticky;top:0;z-index:50;}
.ch-back{width:36px;height:36px;border-radius:50%;background:var(--card);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;flex-shrink:0;-webkit-tap-highlight-color:transparent;}
.ch-av-wrap{position:relative;flex-shrink:0;}
.ch-ring{position:absolute;inset:-2px;border-radius:50%;background:var(--grad);padding:2px;}
.ch-ring-inner{width:100%;height:100%;border-radius:50%;background:var(--black);}
.ch-av{width:40px;height:40px;border-radius:50%;position:relative;z-index:1;display:flex;align-items:center;justify-content:center;font-size:17px;}
.ch-dot{position:absolute;bottom:1px;right:1px;width:10px;height:10px;border-radius:50%;background:var(--green);border:2px solid var(--black);z-index:2;animation:pulse 2.5s infinite;}
.ch-info{flex:1;}
.ch-name{font-family:var(--fd);font-weight:700;font-size:15px;display:flex;align-items:center;gap:5px;}
.ch-status{font-size:11px;color:var(--green);display:flex;align-items:center;gap:4px;margin-top:1px;}
.ch-status::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--green);}
.ch-trust{background:rgba(245,197,66,.1);border:1px solid rgba(245,197,66,.2);border-radius:12px;padding:7px 12px;text-align:center;flex-shrink:0;}
.ch-trust-num{font-family:var(--fd);font-size:17px;font-weight:800;color:var(--gold);line-height:1;}
.ch-trust-lab{font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);}

.messages-area{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px 13px 8px;display:flex;flex-direction:column;gap:0;scroll-behavior:smooth;}
.messages-area::-webkit-scrollbar{display:none;}
.date-div{display:flex;align-items:center;gap:10px;margin:8px 0;color:var(--muted2);font-size:10px;letter-spacing:.08em;text-transform:uppercase;}
.date-div::before,.date-div::after{content:'';flex:1;height:1px;background:var(--border);}
.msg-group{display:flex;flex-direction:column;gap:2px;margin-bottom:11px;}
.msg-group.me{align-items:flex-end;}
.msg-group.them{align-items:flex-start;}
.msg-row{display:flex;align-items:flex-end;gap:8px;max-width:85%;}
.msg-group.me .msg-row{flex-direction:row-reverse;}
.bubble{max-width:min(300px,72%);min-width:70px;border-radius:22px;padding:11px 15px;font-size:14px;line-height:1.55;overflow-wrap:break-word;word-break:normal;white-space:normal;}
.them .bubble{background:var(--card2);border:1px solid var(--border);border-bottom-left-radius:6px;}
.me .bubble{background:linear-gradient(135deg,rgba(92,200,248,.16),rgba(157,127,244,.22));border:1px solid rgba(157,127,244,.28);border-bottom-right-radius:6px;}
/* Shared inline bubble style for circle chat + bot chat */
.chat-bub{min-width:70px;border-radius:14px;padding:9px 12px;font-size:13px;line-height:1.45;overflow-wrap:break-word;word-break:normal;white-space:normal;}
.btime{font-size:10px;color:var(--muted2);margin-top:3px;padding:0 4px;}
.msg-group.me .btime{text-align:right;}
.tdots{display:flex;gap:4px;align-items:center;padding:3px 2px;}
.td{width:7px;height:7px;border-radius:50%;background:var(--muted);}
.td:nth-child(1){animation:pulse 1.2s .0s infinite;}
.td:nth-child(2){animation:pulse 1.2s .2s infinite;}
.td:nth-child(3){animation:pulse 1.2s .4s infinite;}

/* gift card in chat */
.gift-msg-wrap{max-width:340px;}
.gchat{background:var(--card);border:1px solid var(--bord2);border-radius:22px;overflow:hidden;cursor:pointer;position:relative;}
.gchat.animate-send{animation:giftLaunch .7s cubic-bezier(.22,1,.36,1) both;}
.gchat.animate-recv{animation:giftReceivePop .9s cubic-bezier(.22,1,.36,1) both;}
.gchat-shimmer::before{content:'';position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.09) 50%,transparent 60%);background-size:250% 100%;animation:shimmerSlide 1.6s ease .3s 2;border-radius:22px;pointer-events:none;z-index:5;}
.gchat-vis{height:150px;position:relative;}
.gchat-body{padding:13px 13px 12px;}
.gchat-from{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:5px;}
.gchat-price-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.gchat-price{display:flex;align-items:center;gap:5px;font-family:var(--fd);font-weight:800;font-size:16px;color:var(--gold);}
.gchat-ed{font-size:11px;color:var(--muted);}
.gchat-actions{display:flex;gap:7px;}
.gca-btn{flex:1;padding:9px 0;border-radius:13px;font-family:var(--fd);font-size:12px;font-weight:700;cursor:pointer;border:none;transition:transform .15s;display:flex;align-items:center;justify-content:center;gap:4px;-webkit-tap-highlight-color:transparent;}
.gca-btn:active{transform:scale(.95);}
.gca-keep{background:rgba(61,232,160,.1);color:var(--green);border:1px solid rgba(61,232,160,.22);}
.gca-sell{background:rgba(157,127,244,.1);color:var(--purp);border:1px solid rgba(157,127,244,.22);}
.gca-share{background:rgba(92,200,248,.1);color:var(--blue);border:1px solid rgba(92,200,248,.2);}


.ib-gift{width:42px;height:42px;border-radius:50%;background:var(--ntc);display:flex;align-items:center;justify-content:center;font-size:17px;cursor:pointer;flex-shrink:0;border:none;box-shadow:0 2px 14px rgba(245,197,66,.45);transition:transform .2s;-webkit-tap-highlight-color:transparent;}
.ib-gift:active{transform:scale(.86);}
.ib-field{flex:1;background:var(--card);border:1px solid var(--border);border-radius:22px;padding:11px 15px;color:var(--text);font-family:var(--fb);font-size:14px;outline:none;resize:none;max-height:100px;line-height:1.4;}
.ib-field::placeholder{color:var(--muted2);}
.ib-field:focus{border-color:rgba(157,127,244,.45);}
.ib-send{width:42px;height:42px;border-radius:50%;background:var(--grad);display:flex;align-items:center;justify-content:center;font-size:17px;cursor:pointer;flex-shrink:0;border:none;color:#fff;transition:transform .2s;-webkit-tap-highlight-color:transparent;}
.ib-send:active{transform:scale(.86);}

/* gift receive overlay */
#recv-overlay{position:absolute;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;flex-direction:column;pointer-events:none;opacity:0;background:rgba(4,4,10,0);transition:background .5s,opacity .1s;}
#recv-overlay.show{pointer-events:all;opacity:1;background:rgba(4,4,10,.94);}
.recv-rings{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;}
.recv-ring{position:absolute;border-radius:50%;border:2px solid;animation:ringExpand 1.5s cubic-bezier(.22,1,.36,1) both;}
.recv-stage{display:flex;flex-direction:column;align-items:center;position:relative;z-index:2;animation:giftReceivePop .9s cubic-bezier(.22,1,.36,1) both;}
.recv-vis-wrap{width:260px;height:180px;border-radius:26px;overflow:hidden;position:relative;box-shadow:0 30px 80px rgba(0,0,0,.85);}
.recv-neon{width:280px;height:28px;margin-top:-6px;filter:blur(8px);animation:glowPulse 1.2s ease-in-out infinite;}
.recv-from-lbl{font-size:11px;color:var(--muted);letter-spacing:.07em;text-transform:uppercase;margin-top:20px;animation:fadeUp .4s .4s ease both;opacity:0;}
.recv-gname{font-family:var(--fd);font-size:24px;font-weight:800;text-align:center;letter-spacing:-.02em;line-height:1.1;animation:fadeUp .4s .5s ease both;opacity:0;margin-top:5px;}
.recv-gname span{background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.recv-price-row{display:flex;align-items:center;gap:10px;margin-top:12px;animation:fadeUp .4s .62s ease both;opacity:0;}
.recv-price{font-family:var(--fd);font-size:28px;font-weight:800;color:var(--gold);}
.recv-acts{display:flex;gap:10px;margin-top:20px;width:260px;animation:fadeUp .4s .75s ease both;opacity:0;}
.recv-btn{flex:1;padding:14px;border-radius:17px;font-family:var(--fd);font-size:14px;font-weight:700;cursor:pointer;border:none;-webkit-tap-highlight-color:transparent;transition:transform .15s;}
.recv-btn:active{transform:scale(.96);}
.recv-keep{background:var(--grad);color:#fff;}
.recv-later{background:rgba(255,255,255,.07);border:1px solid var(--bord2);color:var(--muted);}
.recv-trust-badge{position:absolute;top:18px;right:18px;z-index:10;background:rgba(245,197,66,.15);border:1px solid rgba(245,197,66,.35);border-radius:100px;padding:7px 14px;display:flex;align-items:center;gap:6px;animation:fadeUp .4s .9s ease both;opacity:0;font-family:var(--fd);font-weight:700;font-size:12px;color:var(--gold);}
.confetti-piece{position:absolute;border-radius:2px;animation:confettiFall 1.4s ease both;pointer-events:none;}

/* send anim overlay */
#send-anim-ov{position:absolute;inset:0;z-index:400;pointer-events:none;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s;}
#send-anim-ov.show{opacity:1;}
.sa-vis{width:180px;height:125px;border-radius:20px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.85);animation:giftLaunch .8s cubic-bezier(.22,1,.36,1) both;position:relative;}
.sa-price{position:absolute;bottom:-42px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:7px;font-family:var(--fd);font-size:20px;font-weight:800;color:var(--gold);animation:ntcCount .5s .35s ease both;opacity:0;white-space:nowrap;}

/* gift picker sheet */
.picker{position:absolute;inset:0;z-index:300;background:rgba(0,0,0,.78);backdrop-filter:blur(12px);display:flex;align-items:flex-end;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s;}
.picker.show{opacity:1;pointer-events:all;}
.picker-sheet{background:var(--surf);border:1px solid var(--border);border-radius:28px 28px 0 0;width:100%;max-width:540px;max-height:80vh;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .4s cubic-bezier(.22,1,.36,1);padding-bottom:calc(16px + var(--safe));}
.picker.show .picker-sheet{transform:translateY(0);}
.picher-handle{width:36px;height:4px;border-radius:2px;background:var(--bord2);margin:14px auto 0;}
.picker-head{padding:14px 20px 10px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;}
.picker-title{font-family:var(--fd);font-size:19px;font-weight:800;}
.picker-bal{display:flex;align-items:center;gap:6px;background:rgba(245,197,66,.1);border:1px solid rgba(245,197,66,.2);border-radius:100px;padding:6px 13px;}
.picker-bal-val{font-family:var(--fd);font-weight:700;font-size:13px;color:var(--gold);}
.picker-cats{display:flex;gap:8px;padding:0 18px 12px;overflow-x:auto;scrollbar-width:none;flex-shrink:0;}
.picker-cats::-webkit-scrollbar{display:none;}
.pcat{padding:6px 15px;border-radius:100px;font-size:12px;font-weight:600;white-space:nowrap;cursor:pointer;border:1px solid var(--border);color:var(--muted);background:transparent;transition:all .2s;-webkit-tap-highlight-color:transparent;}
.pcat.active{background:rgba(157,127,244,.15);color:var(--purp);border-color:rgba(157,127,244,.35);}
.picker-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 15px;overflow-y:auto;-webkit-overflow-scrolling:touch;flex:1;}
.picker-grid::-webkit-scrollbar{display:none;}
.picker-item{background:var(--card);border:1px solid var(--border);border-radius:19px;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .18s,border-color .2s;position:relative;}
.picker-item:active{transform:scale(.95);}
.picker-item.sel{border-color:var(--purp);box-shadow:0 0 0 1px var(--purp);}
.pi-vis{height:100px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;}
.pi-info{padding:9px 10px 11px;}
.pi-rar{font-size:9px;color:var(--muted);margin-bottom:3px;}
.pi-name{font-family:var(--fd);font-size:22px;font-weight:800;line-height:1.2;margin-bottom:4px;}
.pi-price{display:flex;align-items:center;gap:4px;font-family:var(--fd);font-weight:700;font-size:13px;color:var(--gold);}
.picker-confirm{flex-shrink:0;padding:12px 18px 0;display:none;}
.picker-confirm.show{display:block;}
.pc-card{background:var(--card);border:1px solid rgba(157,127,244,.3);border-radius:17px;padding:12px 14px;display:flex;align-items:center;gap:12px;margin-bottom:11px;}
.pcc-vis{width:48px;height:48px;border-radius:11px;overflow:hidden;flex-shrink:0;}

/* ════════════════════════════════════════════
