/* 技术服务客服入口 */
.sp{position:fixed;right:20px;bottom:20px;z-index:60;font-size:14px}
.sp-btn{display:flex;align-items:center;gap:8px;padding:11px 18px;border:0;border-radius:999px;
  background:var(--accent);color:#fff;font-size:14px;font-weight:500;cursor:pointer;
  box-shadow:0 6px 20px rgba(0,0,0,.18)}
.sp-btn:hover{filter:brightness(1.08)}
.sp-dot{width:8px;height:8px;border-radius:50%;background:#7ee2a8;box-shadow:0 0 0 3px rgba(126,226,168,.28)}
.sp-panel{position:absolute;right:0;bottom:62px;width:320px;max-width:calc(100vw - 40px);
  background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 18px;
  box-shadow:0 14px 40px rgba(0,0,0,.22)}
.sp-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.sp-x{border:0;background:none;font-size:20px;line-height:1;cursor:pointer;color:var(--muted)}
.sp-desc{margin:0 0 12px;color:var(--muted);font-size:13px;line-height:1.6}
.sp-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.sp-list li{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-bottom:10px;border-bottom:1px solid var(--line)}
.sp-list li b{min-width:62px;font-weight:500}
.sp-list code{background:rgba(125,125,125,.12);padding:2px 7px;border-radius:6px;font-size:13px;word-break:break-all}
.sp-list em{flex:1 0 100%;color:var(--muted);font-size:12px;font-style:normal}
.sp-copy,.sp-go{margin-left:auto;border:1px solid var(--line);background:transparent;color:var(--fg);
  border-radius:7px;padding:3px 10px;font-size:12px;cursor:pointer;text-decoration:none}
.sp-copy:hover,.sp-go:hover{border-color:var(--accent);color:var(--accent)}
.sp-url{font-size:12px;color:var(--muted);word-break:break-all;max-width:150px}
.sp-todo{margin-left:auto;color:var(--warn);font-size:12px;font-style:normal}
.sp-empty{color:var(--muted);font-size:13px;line-height:1.6;border-bottom:0!important}
.sp-qr{width:200px;display:block;margin:14px auto 0;border-radius:10px;
  border:1px solid var(--line);background:#fff;padding:0}
.sp-hr{margin:12px 0 0;color:var(--muted);font-size:12px;text-align:center}
.sp-hr a{color:var(--accent);text-decoration:none}

/* 卡密兑换页 */
.rd{max-width:640px}
.rd .box{border:1px solid var(--line);border-radius:14px;padding:22px;background:var(--card);margin:18px 0}
.rd input{width:100%;box-sizing:border-box;padding:13px 14px;font-size:17px;letter-spacing:1px;
  border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase}
.rd input:focus{outline:2px solid var(--accent);outline-offset:1px}
.rd button.go{margin-top:12px;width:100%;padding:13px;border:0;border-radius:10px;background:var(--accent);
  color:#fff;font-size:15px;font-weight:500;cursor:pointer}
.rd .res{margin-top:16px;padding:14px 16px;border-radius:10px;font-size:14px;line-height:1.7;display:none}
.rd .ok{background:rgba(60,170,110,.12);border:1px solid rgba(60,170,110,.35)}
.rd .err{background:rgba(200,80,80,.10);border:1px solid rgba(200,80,80,.32)}
.rd .warn{background:rgba(200,150,40,.10);border:1px solid rgba(200,150,40,.30)}