/* ── Chat Widget ── */
.chat-toggle{position:fixed;bottom:2rem;right:2rem;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#b8944b,#d4b87a);color:#121214;border:none;cursor:pointer;z-index:10002;box-shadow:0 4px 20px rgba(184,148,75,.35);transition:all .3s cubic-bezier(.34,1.56,.64,1);display:flex;align-items:center;justify-content:center}
.chat-toggle:hover{transform:scale(1.08);box-shadow:0 6px 30px rgba(184,148,75,.5)}
.chat-toggle:active{transform:scale(.95)}
.chat-toggle-top{position:fixed;top:1.6rem;right:1rem;z-index:10002;display:flex;align-items:center;gap:.35rem;padding:.45rem 1rem;background:linear-gradient(135deg,#b8944b,#d4b87a);color:#121214;border:none;border-radius:8px;cursor:pointer;font-size:.78rem;font-weight:600;box-shadow:0 2px 12px rgba(184,148,75,.3);transition:all .3s cubic-bezier(.34,1.56,.64,1);letter-spacing:.03em;font-family:inherit}
.chat-toggle-top:hover{transform:translateY(-1px);box-shadow:0 4px 20px rgba(184,148,75,.4)}
.chat-toggle-top:active{transform:scale(.95)}
.chat-toggle-top.scroll-hide{opacity:0;transform:translateY(-12px);pointer-events:none;visibility:hidden}
.chat-toggle.scroll-hide{opacity:0;transform:translateY(12px);pointer-events:none;visibility:hidden}

/* 页眉内的客服入口：参与导航布局，避免与「服务记录 / 语言切换」重叠 */
.nav-right-wrap .chat-toggle-top{
  position:static;
  top:auto; right:auto;
  z-index:auto;
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.34rem .72rem;
  border:1px solid rgba(201,162,94,.35);
  border-radius:999px;
  background:transparent;
  color:var(--gold-light,#E4C68A);
  font-family:var(--serif-sc,'Noto Serif SC',serif);
  font-size:.76rem;
  font-weight:400;
  line-height:1;
  letter-spacing:.08em;
  box-shadow:none;
  white-space:nowrap;
  max-width:120px;
  overflow:hidden;
  transition:color .3s ease,border-color .3s ease,background .3s ease,opacity .3s ease,transform .3s ease,visibility .3s ease,max-width .35s ease,padding .35s ease,border-width .35s ease;
}
.nav-right-wrap .chat-toggle-top:hover{
  color:var(--gold,#C9A25E);
  border-color:rgba(201,162,94,.65);
  background:rgba(201,162,94,.08);
  transform:translateY(-1px);
  box-shadow:none;
}
.nav-right-wrap .chat-toggle-top:active{transform:scale(.97)}
.nav-right-wrap .chat-toggle-top svg{width:14px;height:14px;flex:none}
.nav-right-wrap .chat-toggle-top.scroll-hide{
  opacity:0;
  visibility:hidden;
  max-width:0;
  padding-left:0;
  padding-right:0;
  border-width:0;
  transform:translateY(-4px);
  pointer-events:none;
}

/* 1024–1180：给导航留出呼吸空间，避免客服入口挤压菜单 */
@media (min-width:1024px) and (max-width:1180px){
  .nav-brand{margin-right:2.2rem}
  .nav-links{gap:1.7rem}
  .nav-right-wrap .chat-toggle-top{font-size:.7rem;padding:.3rem .58rem;gap:.28rem}
  .nav-right-wrap .chat-toggle-top svg{width:12px;height:12px}
}
.faq-item{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:.6rem .8rem;cursor:pointer;transition:all .2s;font-size:.72rem;color:#ccc}
.faq-item:hover{background:rgba(184,148,75,.06);border-color:rgba(184,148,75,.2);color:#e8dcc8}
.faq-card{display:flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:.55rem .7rem;cursor:pointer;transition:all .25s ease;font-size:.7rem;color:#d0d0d0;margin-bottom:.35rem}
.faq-card:hover{background:rgba(184,148,75,.08);border-color:rgba(184,148,75,.25);color:#f0e8d8;transform:translateX(3px)}
.faq-card-icon{width:24px;height:24px;border-radius:50%;background:rgba(184,148,75,.12);display:flex;align-items:center;justify-content:center;font-size:.6rem;flex-shrink:0}
.faq-card-text{flex:1;line-height:1.3}
.faq-card-arrow{font-size:.6rem;color:#8b7355;flex-shrink:0;transition:transform .2s}
.faq-card:hover .faq-card-arrow{transform:translateX(3px);color:#d4b87a}
.faq-nav{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.35rem 0 .1rem}
.faq-nav-btn{width:22px;height:22px;border-radius:6px;border:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.03);color:#aaa;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.5rem;transition:all .2s;padding:0;line-height:1}
.faq-nav-btn:hover{background:rgba(184,148,75,.12);border-color:rgba(184,148,75,.3);color:#d4b87a}
.faq-nav-dots{display:flex;gap:4px}
.faq-nav-dot{width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.1);cursor:pointer;transition:all .2s}
.faq-nav-dot.active{background:#b8944b;width:14px;border-radius:3px}
.chat-toggle-badge{position:absolute;top:-4px;right:-4px;width:20px;height:20px;border-radius:50%;background:#e74c3c;color:#fff;font-size:.55rem;font-weight:600;display:none;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(231,76,60,.4);border:2px solid #1a1a1f;line-height:1}
@keyframes badgePulse{0%,100%{box-shadow:0 0 0 0 rgba(231,76,60,.4)}50%{box-shadow:0 0 0 8px rgba(231,76,60,0)}}
.chat-toggle-badge.show{display:flex;animation:badgePulse 1.5s ease-in-out infinite}

/* ── Panel ── */
.chat-panel{position:fixed;bottom:6rem;right:2rem;width:480px;height:680px;max-height:75vh;background:rgba(26,26,31,.96);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.08);border-radius:24px;z-index:10002;display:none;flex-direction:column;box-shadow:0 24px 80px rgba(0,0,0,.7);animation:chatIn .35s cubic-bezier(.16,1,.3,1);transition:width .35s cubic-bezier(.16,1,.3,1),height .35s cubic-bezier(.16,1,.3,1),border-radius .35s ease,opacity .25s ease,transform .35s cubic-bezier(.16,1,.3,1)}
@keyframes chatIn{from{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}

/* ── Header ── */
.chat-head{background:rgba(18,18,20,.95);padding:.85rem 1.1rem;border-bottom:1px solid rgba(255,255,255,.06);display:flex;justify-content:space-between;align-items:center;flex-shrink:0}
.chat-head-left{display:flex;align-items:center;gap:.65rem}
.chat-head-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#b8944b,#d4b87a);display:flex;align-items:center;justify-content:center;font-size:.9rem;color:#121214;position:relative;flex-shrink:0}
.chat-head-avatar .status-dot{position:absolute;bottom:0;right:0;width:10px;height:10px;border-radius:50%;background:#2ecc71;border:2px solid #121214}
@keyframes statusPulse{0%,100%{box-shadow:0 0 0 0 rgba(46,204,113,.5)}50%{box-shadow:0 0 0 6px rgba(46,204,113,0)}}
.chat-head-avatar .status-dot.online{animation:statusPulse 2s ease-in-out infinite}
.chat-head-info{display:flex;flex-direction:column;gap:.08rem}
.chat-head-title{font-size:.85rem;color:#f5f0e8;letter-spacing:.04em;font-weight:500}
.chat-head-sub{font-size:.58rem;color:#8b7355;letter-spacing:.03em;display:flex;align-items:center;gap:.3rem}
.chat-head-sub .status-text{color:#2ecc71}
.chat-head-actions{display:flex;align-items:center;gap:.3rem}
.chat-head-btn{width:28px;height:28px;border-radius:50%;border:1px solid rgba(255,255,255,.06);background:transparent;color:#666;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s;padding:0}
.chat-head-btn:hover{border-color:#b8944b;color:#b8944b;background:rgba(184,148,75,.08)}
.chat-expand-btn{width:28px;height:28px;border-radius:50%;border:1px solid rgba(255,255,255,.06);background:transparent;color:#666;font-size:.78rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s;padding:0}
.chat-expand-btn:hover{border-color:#b8944b;color:#b8944b;background:rgba(184,148,75,.08)}

/* ── Messages ── */
.chat-msgs{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.7rem;min-height:0;background:rgba(0,0,0,.15)}
.chat-msgs::-webkit-scrollbar{width:3px}
.chat-msgs::-webkit-scrollbar-track{background:transparent}
.chat-msgs::-webkit-scrollbar-thumb{background:rgba(184,148,75,.2);border-radius:2px}
.chat-msgs::-webkit-scrollbar-thumb:hover{background:rgba(184,148,75,.35)}

/* Typing indicator */
.chat-typing{display:none;align-items:center;gap:.4rem;padding:.4rem .6rem;margin-bottom:.2rem;align-self:flex-start}
.chat-typing.show{display:flex}
.chat-typing-dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.35);animation:typingBounce 1.4s ease-in-out infinite}
.chat-typing-dot:nth-child(1){animation-delay:0s}
.chat-typing-dot:nth-child(2){animation-delay:.2s}
.chat-typing-dot:nth-child(3){animation-delay:.4s}
@keyframes typingBounce{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-6px)}}

/* Message bubbles */
@keyframes msgIn{from{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
.chat-msg{max-width:82%;padding:.7rem 1rem;border-radius:14px;font-size:.8rem;line-height:1.55;word-break:break-word;white-space:pre-wrap;position:relative;animation:msgIn .3s cubic-bezier(.16,1,.3,1) forwards}
.chat-msg.client{background:rgba(34,34,42,.95);color:#d4d0c8;align-self:flex-end;border-bottom-right-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,.25),0 1px 2px rgba(0,0,0,.15);backdrop-filter:blur(4px)}
.chat-msg.admin{background:rgba(184,148,75,.1);color:#f5f0e8;align-self:flex-start;border-bottom-left-radius:4px;border:1px solid rgba(184,148,75,.2);box-shadow:0 2px 12px rgba(184,148,75,.08)}
.chat-msg-label{font-size:.58rem;color:#8b7355;margin-bottom:.25rem;font-weight:500;letter-spacing:.04em}
.chat-msg.admin .chat-msg-label{text-align:left;color:#b8944b}
.chat-msg-time{font-size:.55rem;color:rgba(255,255,255,.25);margin-top:.3rem;display:flex;align-items:center;gap:.25rem}
.chat-msg.client .chat-msg-time{text-align:right;justify-content:flex-end}
.chat-msg.admin .chat-msg-time{text-align:left}
.chat-msg-status{font-size:.55rem;color:rgba(255,255,255,.2);display:inline-flex;align-items:center}
.chat-msg-status.read{color:#b8944b}
.chat-msg-read{font-size:.55rem;color:rgba(255,255,255,.2);text-align:right;padding:2px 2px 0 0;margin-top:-2px;margin-bottom:2px;align-self:flex-end}
.chat-msg-read.read{color:#8b7355}

/* Time separator */
.chat-time-sep{text-align:center;font-size:.58rem;color:rgba(255,255,255,.15);padding:.6rem 0;position:relative}
.chat-time-sep::before,.chat-time-sep::after{content:'';position:absolute;top:50%;width:30%;height:1px;background:rgba(255,255,255,.05)}
.chat-time-sep::before{left:5%}
.chat-time-sep::after{right:5%}

/* Quick reply chips */
.chat-quick-reply{display:flex;flex-wrap:wrap;gap:.5rem;padding:.4rem 0;align-self:flex-start;max-width:90%;animation:msgIn .3s cubic-bezier(.16,1,.3,1) forwards}
.chat-quick-chip{padding:.35rem .85rem;border-radius:20px;border:1px solid rgba(184,148,75,.35);background:rgba(184,148,75,.06);color:#d4b87a;font-size:.72rem;cursor:pointer;transition:all .25s;white-space:nowrap;font-family:inherit}
.chat-quick-chip:hover{background:rgba(184,148,75,.15);border-color:#b8944b;box-shadow:0 0 16px rgba(184,148,75,.15);transform:translateY(-1px)}

/* Image message */
.chat-msg-img{max-width:220px;border-radius:10px;cursor:pointer;display:block;margin-top:.3rem;transition:opacity .25s}
.chat-msg-img:hover{opacity:.85}
.chat-msg-img-uploading{opacity:.5;position:relative}
.chat-msg-img-uploading::after{content:'上传中...';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.6);font-size:.75rem;background:rgba(0,0,0,.4);border-radius:10px}

/* Image lightbox */
.chat-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:99999;display:none;align-items:center;justify-content:center;cursor:pointer;animation:lightboxIn .25s ease}
@keyframes lightboxIn{from{opacity:0}to{opacity:1}}
.chat-lightbox.show{display:flex}
.chat-lightbox img{max-width:90%;max-height:90%;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.8)}
.chat-lightbox-close{position:absolute;top:1rem;right:1rem;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.1);border:none;color:#fff;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center}

/* ── Emoji picker ── */
.chat-emoji-btn{width:32px;height:32px;border-radius:8px;border:none;background:transparent;color:rgba(255,255,255,.3);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.1rem;transition:all .25s;padding:0;flex-shrink:0}
.chat-emoji-btn:hover{color:rgba(255,255,255,.6);background:rgba(255,255,255,.05)}
.chat-emoji-picker{display:none;position:absolute;bottom:100%;left:.5rem;width:280px;height:180px;background:rgba(26,26,31,.98);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:.6rem;overflow-y:auto;z-index:10;box-shadow:0 -8px 40px rgba(0,0,0,.4)}
.chat-emoji-picker.show{display:flex;flex-wrap:wrap;align-content:flex-start;gap:2px}
.chat-emoji-picker .emoji-item{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;cursor:pointer;border-radius:6px;transition:background .15s}
.chat-emoji-picker .emoji-item:hover{background:rgba(184,148,75,.15)}
.chat-emoji-picker::-webkit-scrollbar{width:3px}
.chat-emoji-picker::-webkit-scrollbar-thumb{background:rgba(184,148,75,.2);border-radius:2px}

/* ── Footer ── */
.chat-foot{display:flex;align-items:center;gap:.5rem;padding:.65rem .85rem;border-top:1px solid rgba(255,255,255,.06);background:rgba(18,18,20,.95);flex-shrink:0}
.chat-foot .chat-input-wrap{flex:1;display:flex;align-items:center;background:rgba(21,21,26,.8);border:1px solid rgba(255,255,255,.08);border-radius:12px;transition:border-color .3s,box-shadow .3s;padding:0 .3rem;position:relative}
.chat-foot .chat-input-wrap:focus-within{border-color:#b8944b;box-shadow:0 0 0 2px rgba(184,148,75,.12)}
.chat-foot input{flex:1;padding:.55rem .5rem;background:transparent;border:none;color:#f5f0e8;font-family:inherit;font-size:.8rem;outline:none}
.chat-foot input::placeholder{color:rgba(255,255,255,.2)}
.chat-foot button{padding:.55rem 1rem;background:linear-gradient(135deg,#b8944b,#d4b87a);color:#121214;border:none;border-radius:10px;font-family:inherit;font-size:.75rem;cursor:pointer;font-weight:600;white-space:nowrap;transition:all .3s;letter-spacing:.03em;flex-shrink:0}
.chat-foot button:hover{opacity:.9;transform:translateY(-1px)}
.chat-foot button:disabled{opacity:.35;cursor:not-allowed;transform:none}

/* ── Placeholder ── */
.chat-placeholder{text-align:center;color:rgba(255,255,255,.2);font-size:.72rem;padding:2rem 1rem;letter-spacing:.03em;line-height:1.7}

/* ── Name prompt ── */
.name-prompt{display:none;flex-direction:column;align-items:center;justify-content:center;padding:2rem;gap:1rem;flex:1}
.name-prompt.show{display:flex}
.name-prompt p{font-size:.8rem;color:#aaa;letter-spacing:.03em}
.name-prompt input{width:100%;padding:.65rem .8rem;background:rgba(21,21,26,.8);border:1px solid rgba(255,255,255,.08);color:#f5f0e8;font-family:inherit;font-size:.82rem;outline:none;border-radius:10px;text-align:center}
.name-prompt input:focus{border-color:#b8944b}
.name-prompt button{padding:.6rem 2rem;background:linear-gradient(135deg,#b8944b,#d4b87a);color:#121214;border:none;border-radius:10px;font-family:inherit;font-size:.8rem;cursor:pointer;font-weight:600;letter-spacing:.04em}
.name-prompt button:hover{opacity:.9}

/* ── Invite banner ── */
.chat-invite{position:fixed;bottom:6.5rem;right:2rem;z-index:10001;background:rgba(26,26,31,.96);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:1rem 1.2rem;width:320px;box-shadow:0 12px 48px rgba(0,0,0,.5);display:none;flex-direction:column;gap:.7rem;animation:inviteIn .5s cubic-bezier(.16,1,.3,1) forwards}
@keyframes inviteIn{from{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes inviteOut{from{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(10px) scale(.95)}}
.chat-invite.show{display:flex}
.chat-invite.hiding{animation:inviteOut .4s cubic-bezier(.16,1,.3,1) forwards}
.chat-invite-top{display:flex;align-items:flex-start;gap:.6rem}
.chat-invite-icon{width:36px;height:36px;border-radius:50%;background:rgba(184,148,75,.12);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0}
.chat-invite-text{flex:1}
.chat-invite-text .invite-title{font-size:.82rem;color:#f5f0e8;font-weight:500;margin-bottom:.2rem}
.chat-invite-text .invite-desc{font-size:.7rem;color:rgba(255,255,255,.5);line-height:1.5}
.chat-invite-close{position:absolute;top:.6rem;right:.6rem;width:24px;height:24px;border-radius:50%;border:none;background:rgba(255,255,255,.05);color:rgba(255,255,255,.3);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.7rem;transition:all .25s;padding:0}
.chat-invite-close:hover{background:rgba(255,255,255,.1);color:rgba(255,255,255,.6)}
.chat-invite-btn{padding:.5rem 0;width:100%;background:linear-gradient(135deg,#b8944b,#d4b87a);color:#121214;border:none;border-radius:10px;font-family:inherit;font-size:.78rem;cursor:pointer;font-weight:600;letter-spacing:.03em;transition:all .3s}
.chat-invite-btn:hover{opacity:.9;transform:translateY(-1px)}

/* ── Responsive ── */
@media(max-width:768px){
  .chat-panel{right:0;bottom:0;width:100%;height:100%;max-height:100%;border-radius:0;border:none;box-shadow:none}
  .chat-toggle{right:1rem;bottom:1rem;width:50px;height:50px}
  .chat-toggle-top{top:1rem;right:.6rem;padding:.35rem .7rem;font-size:.7rem}
  .chat-toggle-top svg{width:14px;height:14px}
  .nav{padding-right:4rem}
  .chat-invite{right:.8rem;left:.8rem;width:auto;bottom:5rem}
  .chat-panel.centered{width:100%!important;height:100%!important;max-height:100%!important;border-radius:0!important;top:0!important;left:0!important;transform:none!important;border:none!important}
}

/* ── Member greeting ── */
@keyframes greetingIn{from{opacity:0;transform:translateY(-8px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}

/* ── Member form ── */
.member-form-tabs{display:flex;gap:.4rem;width:100%;margin-bottom:.5rem}
.member-form-tab{flex:1;padding:.45rem;background:transparent;border:1px solid #2a2a30;color:#8b7355;border-radius:8px;cursor:pointer;font-family:inherit;font-size:.72rem;letter-spacing:.04em;transition:all .3s}
.member-form-tab.active{background:rgba(184,148,75,.1);border-color:#b8944b;color:#b8944b}
.member-form-tab:hover{border-color:#b8944b;color:#b8944b}
.member-form-body{display:flex;flex-direction:column;gap:.5rem;width:100%}
.member-form-body input{width:100%;padding:.55rem .7rem;background:rgba(21,21,26,.8);border:1px solid rgba(255,255,255,.08);color:#f5f0e8;font-family:inherit;font-size:.78rem;outline:none;border-radius:8px;text-align:center}
.member-form-body input:focus{border-color:#b8944b}
.member-form-body button{padding:.5rem 0;width:100%;background:linear-gradient(135deg,#b8944b,#d4b87a);color:#121214;border:none;border-radius:8px;font-family:inherit;font-size:.78rem;cursor:pointer;font-weight:600;letter-spacing:.04em}
.member-form-body button:hover{opacity:.9}
.member-form-skip{font-size:.68rem;color:#8b7355;cursor:pointer;text-align:center;padding:.2rem 0;transition:color .3s}
.member-form-skip:hover{color:#b8944b}
.member-form-error{font-size:.7rem;color:#e74c3c;text-align:center;display:none;margin-top:.3rem}

/* ── Member message bubble ── */
.chat-msg.client.member{border:1px solid rgba(184,148,75,.3);box-shadow:0 0 0 1px rgba(184,148,75,.1),0 2px 12px rgba(184,148,75,.08)}
.chat-msg.client.member .chat-msg-label{color:#d4b87a;font-weight:600}

/* ── Welcome toast ── */
.welcome-toast{position:fixed;top:5rem;right:1.8rem;z-index:99999;background:linear-gradient(145deg,rgba(22,22,26,.97),rgba(18,18,20,.94));backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(184,148,75,.25);border-radius:18px;padding:1.1rem 1.6rem;box-shadow:0 12px 48px rgba(0,0,0,.6),0 0 0 1px rgba(184,148,75,.12),inset 0 1px 0 rgba(255,255,255,.04);pointer-events:none;opacity:0;transform:translateY(-16px) scale(.96);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
.welcome-toast.show{opacity:1;transform:translateY(0) scale(1)}
.welcome-toast.hide{opacity:0;transform:translateY(-20px) scale(.94);transition:opacity .6s cubic-bezier(.5,0,.8,.2),transform .6s cubic-bezier(.5,0,.8,.2)}
.welcome-toast::before{content:'';position:absolute;inset:0;border-radius:18px;background:linear-gradient(135deg,rgba(184,148,75,.08) 0%,transparent 50%,rgba(184,148,75,.03) 100%);pointer-events:none}
.welcome-toast-title{font-family:"Noto Serif SC",serif;font-size:.7rem;color:rgba(184,148,75,.6);letter-spacing:.1em;margin-bottom:.25rem;font-weight:400;text-transform:uppercase;position:relative}
.welcome-toast-name{font-family:"Noto Serif SC",serif;font-size:1rem;font-weight:700;background:linear-gradient(135deg,#f5e8c8,#d4b87a,#b8944b);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:.08em;position:relative}

/* ── Centered panel ── */
.chat-panel.centered{animation:centerIn .35s cubic-bezier(.16,1,.3,1)}
@keyframes centerIn{from{opacity:0;transform:translate(-50%,-50%) scale(.92)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}

/* ── Auth button (navbar) ── */
.auth-btn{background:transparent;border:1px solid rgba(184,148,75,.35);color:#f5f0e8;font-family:"Noto Serif SC",serif;font-size:.82rem;padding:7px 20px;border-radius:8px;cursor:pointer;letter-spacing:.06em;transition:all .3s;white-space:nowrap;font-weight:400}
.auth-btn:hover{background:rgba(184,148,75,.1);border-color:#b8944b;color:#d4b87a}
.auth-btn-wrap{position:relative;display:inline-flex;align-items:center}
.auth-btn-user{font-family:"Noto Serif SC",serif;font-size:.72rem;color:#d4b87a;cursor:pointer;letter-spacing:.04em;white-space:nowrap;padding:4px 8px;border-radius:8px;transition:background .3s;user-select:none}
.auth-btn-user:hover{background:rgba(184,148,75,.08)}
.auth-tier{color:#b8944b;font-weight:600}
.auth-name{color:#f5f0e8;font-weight:500}
.auth-arrow{font-size:.6rem;color:#8b7355;margin-left:2px}
.auth-menu{display:none;position:absolute;top:100%;right:0;margin-top:4px;min-width:180px;background:rgba(26,26,31,.96);backdrop-filter:blur(20px);border:1px solid rgba(184,148,75,.2);border-radius:12px;padding:.5rem 0;box-shadow:0 12px 40px rgba(0,0,0,.6);z-index:99999}
.auth-menu.show{display:block;animation:menuIn .2s ease-out}
@keyframes menuIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.auth-menu-info{padding:.35rem .9rem;font-size:.72rem;color:#e8dcc8;font-weight:500}
.auth-menu-meta{padding:0 .9rem .35rem;font-size:.62rem;color:#8b7355}
.auth-menu-div{height:1px;background:rgba(255,255,255,.06);margin:.3rem .6rem}
.auth-menu-item{padding:.4rem .9rem;font-size:.72rem;color:#aaa;cursor:pointer;transition:all .2s}
.auth-menu-item:hover{background:rgba(184,148,75,.08);color:#e74c3c}
.auth-btn-guest{font-family:"Noto Serif SC",serif;font-size:.78rem;color:#d4b87a;cursor:pointer;letter-spacing:.06em;white-space:nowrap;padding:5px 16px;border:1px solid rgba(184,148,75,.4);border-radius:8px;background:rgba(184,148,75,.08);transition:all .3s;user-select:none;font-weight:500}
.auth-btn-guest:hover{border-color:#b8944b;color:#f5f0e8;background:rgba(184,148,75,.15)}
.auth-menu-name{padding:.5rem .9rem 0;font-size:.82rem;color:#f5f0e8;font-weight:500}
.auth-menu-tier{padding:0 .9rem .35rem;font-size:.62rem;color:#b8944b}
.auth-menu-row{padding:.3rem .9rem;font-size:.72rem;color:#ccc;display:flex;justify-content:space-between;align-items:center}
.auth-menu-row strong{color:#8b7355;font-weight:500}
.auth-menu-row span{color:#e8dcc8}

/* ── Auth modal ── */
.auth-overlay{position:fixed;inset:0;z-index:99998;background:rgba(0,0,0,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease;padding:1rem}
.auth-overlay.open{opacity:1}
.auth-modal{background:rgba(26,26,31,.96);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(184,148,75,.2);border-radius:20px;padding:2rem 2rem 1.8rem;width:100%;max-width:420px;position:relative;box-shadow:0 32px 80px rgba(0,0,0,.7);transform:scale(.95);transition:transform .3s cubic-bezier(.16,1,.3,1);max-height:90vh;overflow-y:auto}
.auth-overlay.open .auth-modal{transform:scale(1)}
.auth-close{position:absolute;top:1rem;right:1rem;width:32px;height:32px;border-radius:50%;border:1px solid rgba(255,255,255,.06);background:transparent;color:#8b7355;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s}
.auth-close:hover{border-color:#b8944b;color:#b8944b}
.auth-tabs{display:flex;gap:0;margin-bottom:1.5rem;border-bottom:1px solid rgba(255,255,255,.06)}
.auth-tab{flex:1;padding:.6rem 0;background:transparent;border:none;color:#8b7355;font-family:"Noto Serif SC",serif;font-size:.85rem;cursor:pointer;letter-spacing:.06em;transition:all .3s;border-bottom:2px solid transparent;margin-bottom:-1px}
.auth-tab.active{color:#d4b87a;border-bottom-color:#b8944b}
.auth-tab:hover{color:#b8944b}
.auth-form{display:flex;flex-direction:column;gap:.1rem}
.auth-field{margin-bottom:.8rem}
.auth-label{display:block;font-size:.72rem;color:#8b7355;margin-bottom:.35rem;letter-spacing:.04em;font-weight:500}
.auth-input{width:100%;padding:.7rem .85rem;background:rgba(21,21,26,.8);border:1px solid rgba(255,255,255,.06);color:#f5f0e8;font-family:"Inter",system-ui,sans-serif;font-size:.82rem;outline:none;border-radius:10px;transition:border-color .3s;box-sizing:border-box}
.auth-input:focus{border-color:#b8944b}
.auth-input::placeholder{color:#555}
.auth-submit{width:100%;padding:.7rem 0;background:linear-gradient(135deg,#b8944b,#d4b87a);color:#121214;border:none;border-radius:10px;font-family:"Noto Serif SC",serif;font-size:.82rem;cursor:pointer;font-weight:600;letter-spacing:.06em;transition:all .3s;margin-top:.4rem}
.auth-submit:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 4px 16px rgba(184,148,75,.3)}
.auth-submit:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
.auth-switch{text-align:center;font-size:.72rem;color:#8b7355;margin-top:.8rem}
.auth-switch a{color:#b8944b;cursor:pointer;font-weight:500;transition:color .3s}
.auth-switch a:hover{color:#d4b87a}
.auth-error{font-size:.72rem;color:#e74c3c;text-align:center;display:none;margin-top:.6rem;line-height:1.4}
.auth-opt{color:#666;font-weight:400}
.auth-code-row{display:flex;gap:.5rem;align-items:stretch;margin-bottom:.6rem}
.auth-code-input{flex:1;min-width:0}
.auth-code-btn{flex-shrink:0;padding:.5rem .7rem;background:linear-gradient(135deg,#b8944b,#d4b87a);color:#121214;border:none;border-radius:10px;font-family:inherit;font-size:.7rem;cursor:pointer;font-weight:500;transition:all .3s;white-space:nowrap;min-width:84px;letter-spacing:.02em}
.auth-code-btn:disabled{opacity:.4;cursor:not-allowed;background:#333;color:#888}
.auth-code-btn:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}
.auth-sub-tabs{display:flex;gap:0;margin-bottom:1rem;background:rgba(21,21,26,.5);border-radius:10px;padding:2px}
.auth-sub-tab{flex:1;padding:.4rem 0;text-align:center;font-size:.72rem;color:#8b7355;background:transparent;border:none;border-radius:8px;cursor:pointer;font-family:inherit;letter-spacing:.04em;transition:all .25s}
.auth-sub-tab.active{color:#f5f0e8;background:rgba(184,148,75,.15)}
.auth-sub-tab:hover:not(.active){color:#d4b87a}
.auth-form-title{font-family:"Noto Serif SC",serif;font-size:.78rem;color:#e8dcc8;text-align:center;margin:0 0 .6rem;letter-spacing:.04em;font-weight:400}
@media(max-width:480px){.auth-modal{border-radius:16px;padding:1.5rem 1.2rem;max-width:100%}}

/* ═══════════════════════════════════════
   Profile Tabs & Cards
   ═══════════════════════════════════════ */
.profile-tabs{display:flex;gap:0;border-bottom:1px solid rgba(255,255,255,.06);flex-shrink:0;padding:0 1rem}
.profile-tab{flex:1;padding:.75rem .5rem;background:transparent;border:none;color:#8b7355;font-family:"Noto Serif SC",serif;font-size:.8rem;cursor:pointer;letter-spacing:.04em;transition:all .3s;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;display:flex;align-items:center;justify-content:center;gap:6px}
.profile-tab.active{color:#d4b87a;border-bottom-color:#b8944b}
.profile-tab:hover{color:#b8944b}
.profile-tab-badge{font-size:.6rem;background:rgba(184,148,75,.15);color:#d4b87a;padding:1px 7px;border-radius:10px;min-width:18px;text-align:center}
.profile-body{flex:1;overflow-y:auto;padding:1rem 1.5rem 1.5rem;min-height:200px}
.profile-body::-webkit-scrollbar{width:3px}
.profile-body::-webkit-scrollbar-track{background:transparent}
.profile-body::-webkit-scrollbar-thumb{background:rgba(184,148,75,.2);border-radius:2px}
.profile-empty{text-align:center;padding:3rem 1rem;color:#666;font-size:.82rem;letter-spacing:.04em;line-height:1.8}
.profile-empty-icon{font-size:2.5rem;margin-bottom:.6rem}
.profile-empty-link{display:inline-block;margin-top:.8rem;padding:.5rem 1.2rem;background:linear-gradient(135deg,#b8944b,#d4b87a);color:#121214;border-radius:8px;font-family:"Noto Serif SC",serif;font-size:.78rem;text-decoration:none;font-weight:500;letter-spacing:.04em;transition:all .3s}
.profile-empty-link:hover{opacity:.9;transform:translateY(-1px)}
.profile-loading{text-align:center;padding:3rem 1rem;color:#888;font-size:.8rem;letter-spacing:.04em}
.profile-list{display:flex;flex-direction:column;gap:.5rem}
.profile-card{background:rgba(21,21,26,.8);border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:.8rem 1rem;transition:all .2s}
.profile-card:hover{border-color:rgba(255,255,255,.12)}
.profile-card-h{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}
.profile-card-h.clickable{cursor:pointer}
.profile-card-h.clickable:hover{border-color:rgba(184,148,75,.3);background:rgba(184,148,75,.04)}
.profile-card-icon{width:44px;height:44px;border-radius:8px;background:rgba(255,255,255,.04);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}
.profile-card-info{flex:1;min-width:120px}
.profile-card-name{font-size:.82rem;color:#d0d0d0;font-weight:500}
.profile-card-detail{font-size:.66rem;color:#666;margin-top:2px;line-height:1.4}
.profile-card-qty{font-size:.75rem;color:#888;white-space:nowrap;flex-shrink:0}
.profile-card-price{font-family:"Cormorant Garamond",serif;font-size:.9rem;color:#d4b87a;font-weight:500;white-space:nowrap;flex-shrink:0}
.profile-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem}
.profile-card-id{font-family:"Inter",monospace;font-size:.68rem;color:#8b7355}
.profile-card-date{font-size:.65rem;color:#555}
.profile-card-body{margin-bottom:.4rem}
.profile-card-meta{font-size:.68rem;color:#777;margin-top:3px}
.profile-card-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid rgba(255,255,255,.04);padding-top:.5rem}
.profile-card-total{font-family:"Cormorant Garamond",serif;font-size:.95rem;color:#e8dcc8;font-weight:500}
.profile-card-status{font-size:.65rem;padding:2px 10px;border-radius:8px;letter-spacing:.03em}
.profile-card-status.status-completed{color:#6a9;background:rgba(100,170,150,.1);border:1px solid #2a3a2a}
.profile-summary{margin-top:1rem;padding:.8rem 1rem;background:rgba(18,18,20,.8);border:1px solid rgba(255,255,255,.06);border-radius:12px;flex-shrink:0}
.profile-summary-row{display:flex;justify-content:space-between;align-items:center;padding:.25rem 0;font-size:.78rem;color:#888}
.profile-summary-row.deposit{color:#d4b87a;font-size:.82rem}
.profile-pay-btn{width:100%;margin-top:.6rem;padding:.7rem;background:linear-gradient(135deg,#b8944b,#d4b87a);color:#121214;border:none;border-radius:10px;font-family:"Noto Serif SC",serif;font-size:.82rem;cursor:pointer;font-weight:500;letter-spacing:.06em;transition:all .3s}
.profile-pay-btn:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 4px 16px rgba(184,148,75,.3)}
@media(max-width:768px){
.profile-body{padding:.8rem 1rem 1.2rem}
.profile-tab{font-size:.72rem}
.profile-card-h{gap:.6rem}
.profile-card-icon{width:38px;height:38px;font-size:1.2rem}}

/* ── Product Card in Chat ── */
.chat-card-msg{background:transparent !important;padding:0 !important}
.chat-card-msg .chat-product-list{background:rgba(21,21,26,.8);border:1px solid rgba(255,255,255,.08);border-radius:12px;overflow:hidden}
.chat-product-item{display:flex;align-items:center;gap:.6rem;padding:.5rem .7rem;border-bottom:1px solid rgba(255,255,255,.04)}
.chat-product-item:last-child{border-bottom:none}
.chat-product-icon{font-size:1.2rem;flex-shrink:0}
.chat-product-info{flex:1;min-width:0}
.chat-product-name{font-size:.78rem;color:#d0d0d0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-product-detail{font-size:.62rem;color:#666;margin-top:1px}
.chat-product-qty{font-size:.72rem;color:#888;flex-shrink:0}
.chat-product-price{font-family:"Cormorant Garamond",serif;font-size:.82rem;color:#d4b87a;font-weight:500;flex-shrink:0}

/* ── Cart Checkbox ── */
.cart-checkbox-wrap{display:inline-flex;align-items:center;cursor:pointer;padding:4px}
.cart-checkbox{display:none}
.cart-checkbox-mark{width:18px;height:18px;border:2px solid rgba(255,255,255,.2);border-radius:4px;position:relative;transition:all .2s;flex-shrink:0}
.cart-checkbox:checked+.cart-checkbox-mark{background:#b8944b;border-color:#b8944b}
.cart-checkbox:checked+.cart-checkbox-mark::after{content:'✓';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#121214;font-size:12px;font-weight:700}
.cart-card.dimmed{opacity:.45}
.cart-consult-btn{width:100%;margin-top:.5rem;padding:.7rem;background:transparent;border:1px solid rgba(184,148,75,.35);color:#d4b87a;border-radius:10px;font-family:"Noto Serif SC",serif;font-size:.82rem;cursor:pointer;font-weight:500;letter-spacing:.06em;transition:all .3s}
.cart-consult-btn:hover{background:rgba(184,148,75,.08);border-color:#b8944b}
.cart-consult-btn:disabled,.cart-pay-btn:disabled{opacity:.3;cursor:not-allowed}

/* ── 常见问题入口（输入框左侧）── */
.chat-faq-btn {
  flex: 0 0 auto;
  height: 34px;
  padding: 0 .7rem;
  margin-right: .35rem;
  border: 1px solid rgba(184, 148, 75, 0.32);
  border-radius: 8px;
  background: rgba(184, 148, 75, 0.08);
  color: #d4b87a;
  font-family: inherit;
  font-size: .68rem;
  letter-spacing: .06em;
  cursor: pointer;
  white-space: nowrap;
  transition: background .25s, border-color .25s, color .25s;
}
.chat-faq-btn:hover {
  background: rgba(184, 148, 75, 0.16);
  border-color: rgba(212, 184, 122, 0.55);
  color: #e8d5b0;
}

/* ── 问题合集卡片 ── */
.kw-faq-collect {
  display: flex;
  flex-direction: column;
  gap: .3rem;
  max-width: 100%;
}

.kw-faq-title {
  font-size: .7rem;
  color: #d4b87a;
  letter-spacing: .04em;
  margin-bottom: .35rem;
}

.kw-faq-list {
  display: flex;
  flex-direction: column;
  gap: .32rem;
}

.kw-faq-item {
  display: block;
  width: 100%;
  text-align: left;
  padding: .52rem .7rem;
  border: 1px solid rgba(184, 148, 75, 0.20);
  border-radius: 9px;
  background: rgba(184, 148, 75, 0.06);
  color: #e8dcc8;
  font-family: inherit;
  font-size: .7rem;
  line-height: 1.5;
  cursor: pointer;
  transition: background .22s, border-color .22s, transform .22s;
}
.kw-faq-item:hover {
  background: rgba(184, 148, 75, 0.14);
  border-color: rgba(212, 184, 122, 0.48);
  transform: translateX(2px);
}
.kw-faq-item:active { transform: translateX(0); }

.kw-faq-pager {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  margin-top: .55rem;
  padding-top: .45rem;
  border-top: 1px solid rgba(184, 148, 75, 0.14);
}

.kw-faq-pg {
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(184, 148, 75, 0.28);
  border-radius: 6px;
  background: transparent;
  color: #d4b87a;
  font-size: .82rem;
  line-height: 1;
  cursor: pointer;
  transition: background .2s, border-color .2s, opacity .2s;
}
.kw-faq-pg:hover:not(:disabled) {
  background: rgba(184, 148, 75, 0.14);
  border-color: rgba(212, 184, 122, 0.5);
}
.kw-faq-pg:disabled { opacity: .3; cursor: default; }

.kw-faq-pg-info {
  font-size: .62rem;
  letter-spacing: .08em;
  color: #8b7355;
  min-width: 3.4em;
  text-align: center;
}
