.wholy-fc-wrap {
  --wholy-fc-primary: #f97316;
  --wholy-fc-dark: #111827;
  --wholy-fc-bg: #fff;
  --wholy-fc-border: #e5e7eb;
  --wholy-fc-muted: #6b7280;
  position: fixed;
  z-index: 99999;
  font-family: inherit;
}
.wholy-fc-wrap * { box-sizing: border-box; }
.wholy-fc-pos-right { right: 18px; top: 50%; transform: translateY(-50%); }
.wholy-fc-pos-left { left: 18px; top: 50%; transform: translateY(-50%); }
.wholy-fc-bar { display: flex; flex-direction: column; gap: 9px; align-items: flex-end; }
.wholy-fc-btn {
  min-width: 46px;
  height: 46px;
  border: 0;
  border-radius: 999px;
  background: var(--wholy-fc-dark);
  color: #fff;
  box-shadow: 0 10px 25px rgba(15,23,42,.18);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
  text-decoration: none;
  padding: 0 13px;
  transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
  font: inherit;
}
.wholy-fc-btn:hover { transform: translateY(-2px); background: var(--wholy-fc-primary); box-shadow: 0 12px 28px rgba(249,115,22,.28); color: #fff; }
.wholy-fc-icon { width: 20px; height: 20px; display: inline-flex; }
.wholy-fc-icon svg { width: 20px; height: 20px; fill: currentColor; }
.wholy-fc-label { max-width: 0; overflow: hidden; white-space: nowrap; opacity: 0; transition: max-width .18s ease, opacity .18s ease; font-size: 13px; font-weight: 700; }
.wholy-fc-btn:hover .wholy-fc-label { max-width: 90px; opacity: 1; }
.wholy-fc-modal { display: none; position: fixed; inset: 0; z-index: 100000; align-items: center; justify-content: center; padding: 20px; }
.wholy-fc-modal.is-open { display: flex; }
.wholy-fc-modal-backdrop { position: absolute; inset: 0; background: rgba(17,24,39,.42); backdrop-filter: blur(2px); }
.wholy-fc-modal-panel {
  position: relative;
  width: min(94vw, 380px);
  border-radius: 18px;
  background: #fff;
  padding: 22px;
  text-align: center;
  box-shadow: 0 24px 70px rgba(0,0,0,.22);
}
.wholy-fc-modal-panel h3 { margin: 0 0 14px; font-size: 20px; line-height: 1.3; color: #111827; }
.wholy-fc-modal-close { position: absolute; right: 12px; top: 10px; border: 0; background: #f3f4f6; color: #374151; width: 30px; height: 30px; border-radius: 999px; cursor: pointer; font-size: 21px; line-height: 1; }
.wholy-fc-qr-box {
  width: min(280px, 100%);
  min-height: 180px;
  max-height: min(70vh, 360px);
  margin: 0 auto;
  border: 1px solid var(--wholy-fc-border);
  border-radius: 14px;
  background: #fff;
  padding: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
}
.wholy-fc-modal .wholy-fc-qr,
.wholy-fc-qr-box .wholy-fc-qr {
  display: block !important;
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: min(64vh, 320px) !important;
  object-fit: contain !important;
  object-position: center center !important;
  border: 0 !important;
  border-radius: 10px !important;
  padding: 0 !important;
  margin: 0 auto !important;
  background: #fff !important;
  box-shadow: none !important;
}
.wholy-fc-qr-placeholder { width: 100%; height: 100%; margin: 0 auto; border: 1px dashed var(--wholy-fc-border); border-radius: 12px; display: flex; align-items: center; justify-content: center; color: var(--wholy-fc-muted); background: #f9fafb; padding: 16px; font-size: 13px; line-height: 1.5; }
.wholy-fc-wechat-id { margin: 14px 0 10px; color: #374151; font-size: 15px; }
.wholy-fc-copy { border: 0; background: var(--wholy-fc-primary); color: #fff; border-radius: 999px; padding: 9px 16px; cursor: pointer; font-weight: 700; }
.wholy-fc-copy-note { min-height: 18px; margin: 8px 0 0; color: #16a34a; font-size: 13px; }
@media (max-width: 640px) {
  .wholy-fc-mobile-bottom { left: 12px; right: 12px; bottom: 12px; top: auto; transform: none; }
  .wholy-fc-mobile-bottom .wholy-fc-bar { flex-direction: row; justify-content: center; align-items: center; gap: 8px; background: rgba(255,255,255,.92); border: 1px solid #e5e7eb; border-radius: 999px; box-shadow: 0 14px 40px rgba(15,23,42,.16); padding: 8px; backdrop-filter: blur(8px); }
  .wholy-fc-mobile-bottom .wholy-fc-btn { flex: 1; height: 42px; border-radius: 999px; padding: 0 10px; box-shadow: none; }
  .wholy-fc-mobile-bottom .wholy-fc-label { max-width: 80px; opacity: 1; font-size: 12px; }
}
