:root {
  --brand: #e8447f;
  --brand-2: #ff6fa5;
  --ink: #23232b;
  --text: #4b4b55;
  --muted: #8a8a95;
  --line: #f0e6ec;
  --bg: #ffe6f1;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; }

body {
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
  background: linear-gradient(180deg, #ffe9f3 0%, #ffd9ea 100%);
  color: var(--text);
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
  display: flex;
  flex-direction: column;
}

a { text-decoration: none; color: inherit; }

/* ================= 顶部导航（正规电商式） ================= */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255, 255, 255, 0.97);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 2px 14px rgba(190, 130, 160, 0.08);
  padding-top: env(safe-area-inset-top, 0px);
}
.header-inner {
  max-width: 1280px; margin: 0 auto;
  padding: 0 22px; height: 66px;
  display: grid;
  grid-template-columns: auto 1fr;   /* LOGO + 账号区（顶部分类导航已下线） */
  align-items: center;
  gap: 18px;
}

.site-logo-h1 { margin: 0; padding: 0; font-size: 0; line-height: 0; display: inline-flex; flex-shrink: 0; }
.logo { display: inline-flex; align-items: center; gap: 10px; flex-shrink: 0; }
/* 站点 LOGO 图片（含站名，按高度等比缩放） */
.logo-img { display: block; height: 46px; width: auto; max-width: 200px; object-fit: contain; }
.logo-mark {
  width: 34px; height: 34px; border-radius: 9px;
  background: linear-gradient(135deg, #ff8ab8, #e8447f);
  color: #fff; display: grid; place-items: center;
  font-weight: 800; font-size: 17px;
  box-shadow: 0 4px 10px rgba(232, 68, 127, 0.28);
}
.logo-text {
  font-size: 19px; font-weight: 800; color: var(--ink);
  letter-spacing: .5px; white-space: nowrap;
}

.header-right { display: flex; align-items: center; gap: 6px; flex-shrink: 0; justify-self: end; min-width: 0; }
.header-actions { display: flex; align-items: center; gap: 8px; flex-wrap: nowrap; }
.btn-ghost {
  display: inline-flex; align-items: center; height: 38px; padding: 0 14px;
  border-radius: 5px; font-size: 15px; color: var(--text);
  background: none; border: none; font-family: inherit; cursor: pointer;
  transition: color .15s, background .15s;
}
.btn-ghost:hover { color: var(--brand); background: #fdf3f8; }
.btn-primary {
  display: inline-flex; align-items: center; justify-content: center;
  height: 38px; padding: 0 20px; border-radius: 5px;
  font-size: 15px; font-weight: 600; color: #fff; font-family: inherit;
  background: linear-gradient(90deg, var(--brand-2), var(--brand));
  border: none; cursor: pointer;
  box-shadow: 0 4px 12px rgba(232, 68, 127, 0.25);
  transition: filter .15s, transform .15s;
}
.btn-primary:hover { filter: brightness(1.05); }
.btn-primary:active { transform: translateY(1px); }

/* ================= 主体 ================= */
main {
  flex: 1 0 auto;
  max-width: 1280px; margin: 0 auto; width: 100%;
  padding: 26px 22px 40px;
}
.section-head {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 10px; margin-bottom: 18px; flex-wrap: wrap;
}
.section-head h1 { font-size: 18px; font-weight: 700; color: var(--ink); }
.section-head span { font-size: 13px; color: var(--muted); }

.masonry { column-count: 4; column-gap: 16px; }
@media (max-width: 1100px) { .masonry { column-count: 3; } }
@media (max-width: 760px)  { .masonry { column-count: 2; column-gap: 10px; } }

.masonry figure {
  position: relative;
  margin: 0 0 16px; break-inside: avoid;
  border-radius: 12px; overflow: hidden;
  background: #fff; cursor: zoom-in;
  box-shadow: 0 4px 16px rgba(200, 140, 170, 0.14);
  transition: transform .2s ease, box-shadow .2s ease;
}
.masonry img { width: 100%; display: block; }
.masonry figure:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 26px rgba(200, 120, 155, 0.24);
}
.badge {
  position: absolute; top: 10px; left: 10px;
  padding: 3px 9px; border-radius: 6px;
  background: rgba(0, 0, 0, 0.55);
  color: #fff; font-size: 12px; font-weight: 500;
  letter-spacing: .3px; pointer-events: none;
}

/* 演示图下拉懒加载的提示/进度条 */
.demo-sentinel { display: flex; align-items: center; justify-content: center; padding: 22px 0 40px; color: #c98aa6; font-size: 13px; }
.ds-text { position: relative; padding-left: 24px; }
.ds-text::before {
  content: ""; position: absolute; left: 0; top: 50%; width: 14px; height: 14px; margin-top: -7px;
  border: 2px solid #f2b9d2; border-top-color: #e8447f; border-radius: 50%;
  animation: dsspin .7s linear infinite;
}
@keyframes dsspin { to { transform: rotate(360deg); } }
@media (max-width: 760px) { .demo-sentinel { padding: 16px 0 30px; font-size: 12px; } }

/* 首页 feed 底部居中“换一批”（与右上角换一换功能一致，每批最多 100 张） */
.feed-more-wrap { display: flex; justify-content: center; padding: 26px 0 46px; }
.feed-more-btn {
  display: inline-flex; align-items: center; gap: 7px;
  height: 48px; padding: 0 30px; border-radius: 24px;
  border: 1.5px solid rgba(232,68,127,.5); background: #fff;
  color: var(--brand, #e8447f); font-size: 15px; font-weight: 700; cursor: pointer;
  transition: all .15s; box-shadow: 0 4px 14px rgba(200,60,110,.12);
}
.feed-more-btn svg { width: 18px; height: 18px; flex: none; }
.feed-more-btn:hover { background: #fff5fa; border-color: var(--brand, #e8447f); box-shadow: 0 6px 18px rgba(200,60,110,.2); }
.feed-more-btn:active { transform: scale(.97); }
@media (max-width: 760px) { .feed-more-wrap { padding: 20px 0 36px; } .feed-more-btn { height: 44px; padding: 0 24px; font-size: 14px; } }

.empty { text-align: center; color: var(--muted); padding: 60px 0; font-size: 14px; }

.demo-tip {
  margin-top: 26px; padding: 14px 18px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid var(--line); border-radius: 10px;
  font-size: 13px; line-height: 1.7; color: #7a6b73;
}
.demo-tip strong { color: var(--ink); }

/* ================= 页脚 ================= */
.site-footer {
  flex-shrink: 0;
  background: #fff;
  border-top: 1px solid var(--line);
  padding: 40px 22px calc(34px + env(safe-area-inset-bottom, 0px));
  color: #6a5b63;
}
.foot-inner {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.5fr 1fr 1.35fr 1fr;
  gap: 30px 34px;
}
.foot-col h4 {
  font-size: 14px;
  color: var(--ink);
  font-weight: 700;
  margin-bottom: 14px;
  position: relative;
  padding-left: 11px;
}
.foot-col h4::before {
  content: "";
  position: absolute;
  left: 0; top: 50%;
  transform: translateY(-50%);
  width: 3px; height: 13px; border-radius: 2px;
  background: linear-gradient(180deg, var(--brand-2), var(--brand));
}
.foot-logo { height: 38px; width: auto; display: block; }
.foot-brand-name { display: none; }            /* logo 图片本身已含「采图客」字样，避免重复 */
.foot-desc { font-size: 12.5px; line-height: 1.7; color: #a7969f; margin-top: 10px; }
.foot-nav a {
  display: block;
  font-size: 13.5px; color: #6a5b63;
  padding: 5px 0; transition: color .15s ease;
}
.foot-nav a:hover { color: var(--brand); }
.foot-contact p { font-size: 13px; line-height: 1.85; color: #6a5b63; }
.foot-contact a { color: var(--brand); }
.foot-contact a:hover { text-decoration: underline; }
.foot-contact .fc-row { line-height: 1.9; }
.fc-k::after { content: "："; }
.fc-v { color: inherit; }
a.fc-v { color: var(--brand); }
.foot-holiday { color: #b0a3aa; font-size: 12px; }
.foot-gzh {
  width: 118px; height: 118px; border-radius: 10px;
  background: #fff; border: 1px solid var(--line);
  padding: 6px; box-shadow: 0 4px 14px rgba(200, 120, 160, .10);
}
.foot-qr-tip { font-size: 12px; color: #a7969f; margin-top: 8px; }
.foot-bottom {
  max-width: 1180px;
  margin: 30px auto 0;
  padding-top: 18px;
  border-top: 1px solid var(--line);
  text-align: center;
}
.foot-bottom p { font-size: 12.5px; color: #9b8792; line-height: 1.95; }
.foot-bottom a { color: #9b8792; }
.foot-bottom a:hover { color: var(--brand); }
.foot-legal .sep { margin: 0 7px; color: #d3c3cb; }
.foot-legal a { white-space: nowrap; }

/* 平板：两列 */
@media (max-width: 860px) {
  .foot-inner { grid-template-columns: 1fr 1fr; gap: 26px 24px; }
  .foot-brand { grid-column: 1 / -1; }
}
/* 手机 H5：品牌行 + 导航/二维码两栏 + 信息行式联系方式 */
@media (max-width: 560px) {
  .site-footer {
    padding: 26px 18px calc(48px + env(safe-area-inset-bottom, 0px));
  }
  .foot-inner {
    grid-template-columns: 1fr auto;
    grid-template-areas:
      "brand   brand"
      "nav     qr"
      "contact contact";
    gap: 22px 16px;
    align-items: start;
  }
  .foot-brand   { grid-area: brand; }
  .foot-nav     { grid-area: nav; }
  .foot-contact { grid-area: contact; }
  .foot-qr      { grid-area: qr; justify-self: end; width: 96px; text-align: center; }

  /* 移动端标题改「小字标签」样式，去掉左侧竖条，避免看起来像一个“|”字符 */
  .foot-col h4 {
    font-size: 11.5px; font-weight: 700; letter-spacing: 1.2px;
    color: #bd97a5; padding-left: 0; margin-bottom: 6px;
  }
  .foot-col h4::before { display: none; }

  .foot-logo { height: 34px; }
  .foot-brand-name { display: none; }          /* logo 本身已含站名，去掉重复文字 */
  .foot-desc { margin-top: 9px; font-size: 12px; line-height: 1.6; color: #b09fa8; }

  .foot-nav a { font-size: 13.5px; padding: 6px 0; color: #5b4a52; }

  .foot-gzh { width: 96px; height: 96px; padding: 5px; border-radius: 9px; box-shadow: 0 3px 10px rgba(200,120,160,.10); }
  .foot-qr-tip { font-size: 10.5px; margin-top: 6px; color: #b09fa8; white-space: nowrap; }
  .qr-brand { display: none; }

  .foot-contact .fc-row {
    display: flex; align-items: baseline; justify-content: space-between;
    gap: 14px; padding: 9px 0; font-size: 13px; line-height: 1.5;
  }
  .foot-contact .fc-row + .fc-row { border-top: 1px solid #f8eef3; }
  .fc-k { flex: none; color: #a7969f; }
  .fc-k::after { content: ""; }
  .fc-v { color: #3a2b33; font-weight: 600; text-align: right; }
  .foot-holiday { margin-top: 6px; font-size: 11.5px; color: #b7a6ae; }

  .foot-bottom { margin-top: 18px; padding-top: 14px; border-top: 1px solid #f8eef3; }
  .foot-bottom p { font-size: 11.5px; line-height: 1.95; color: #a89aa1; }
  .foot-legal .sep { margin: 0 6px; }
}
/* 超小屏（iPhone SE 320）微调 */
@media (max-width: 360px) {
  .site-footer { padding-left: 15px; padding-right: 15px; }
  .foot-gzh { width: 86px; height: 86px; }
  .foot-qr { width: 86px; }
  .foot-qr-tip { font-size: 10px; }
  .foot-bottom p { font-size: 11px; }
  .cp-more { display: none; }
}

/* ================= 内容页（帮助/关于/版权/注意事项） ================= */
.doc-page { max-width: 860px; margin: 0 auto; padding: 30px 18px 12px; }
.doc-title { font-size: 26px; color: var(--ink); font-weight: 800; margin-bottom: 6px; }
.doc-sub { font-size: 14px; color: var(--muted); margin-bottom: 26px; }
.doc-sec {
  background: #fff; border: 1px solid var(--line); border-radius: 14px;
  padding: 20px 22px; margin-bottom: 16px;
  box-shadow: 0 4px 16px rgba(200, 120, 160, .05);
}
.doc-sec h2 { font-size: 16px; color: var(--brand); margin-bottom: 10px; }
.doc-sec p { font-size: 14px; line-height: 1.85; color: var(--text); }
.doc-sec ul { margin: 8px 0 0 20px; }
.doc-sec li { font-size: 14px; line-height: 1.95; color: var(--text); }
.doc-sec .doc-empty { color: #b0a3aa; font-style: italic; }

/* ================= 帮助中心折叠 FAQ（details/summary 手风琴） ================= */
.faq-list { margin-top: 6px; }
.faq-item {
  background: #fff; border: 1px solid var(--line); border-radius: 12px;
  margin-bottom: 12px; overflow: hidden;
  box-shadow: 0 4px 16px rgba(200, 120, 160, .05);
  transition: border-color .15s, box-shadow .15s;
}
.faq-item[open] { border-color: rgba(232, 68, 127, .45); box-shadow: 0 6px 20px rgba(232, 68, 127, .12); }
.faq-item summary {
  list-style: none; cursor: pointer;
  display: flex; align-items: center; gap: 12px;
  padding: 16px 18px; font-size: 15px; font-weight: 600; color: var(--ink);
  user-select: none; -webkit-tap-highlight-color: transparent;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-ico { margin-left: auto; flex: none; width: 18px; height: 18px; position: relative; transition: transform .2s ease; }
.faq-ico::before, .faq-ico::after { content: ""; position: absolute; background: var(--brand); border-radius: 2px; }
.faq-ico::before { left: 8px; top: 2px; width: 2px; height: 14px; }
.faq-ico::after { left: 2px; top: 8px; width: 14px; height: 2px; }
.faq-item[open] summary .faq-ico { transform: rotate(135deg); }
.faq-a { padding: 0 18px 18px; font-size: 14px; line-height: 1.9; color: var(--text); }
.faq-a p { margin: 0 0 10px; }
.faq-a p:last-child { margin-bottom: 0; }
.faq-a a { color: var(--brand); }
@media (max-width: 560px) {
  .faq-item summary { padding: 14px 15px; font-size: 14px; gap: 10px; }
  .faq-a { padding: 0 15px 16px; }
}
@media (max-width: 560px) {
  .doc-page { padding: 22px 14px 8px; }
  .doc-title { font-size: 22px; }
  .doc-sec { padding: 16px 16px; }
}

/* ================= 灯箱 ================= */
.lightbox {
  position: fixed; inset: 0; z-index: 100;
  background: rgba(24, 14, 20, 0.92);
  display: flex; align-items: center; justify-content: center;
}
.pm-arrow svg { width: 16px; height: 16px; }
/* 图片 + 下载按钮的纵向舞台：按钮固定在图片正下方居中 */
.lb-stage {
  display: flex; flex-direction: column; align-items: center; gap: 14px;
  max-width: 100%; max-height: 100%;
  padding: 58px 0 64px; box-sizing: border-box;
}
.lightbox img {
  max-width: 92vw; max-height: calc(100vh - 190px);
  border-radius: 10px;
  box-shadow: 0 12px 44px rgba(0, 0, 0, 0.45);
}
.lightbox button {
  position: absolute; background: rgba(255, 255, 255, 0.14);
  color: #fff; border: none; cursor: pointer;
  font-size: 26px; width: 48px; height: 48px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  transition: background .15s ease;
}
.lightbox button:hover { background: rgba(255, 255, 255, 0.3); }
.lb-close { top: 18px; right: 20px; }
.lb-prev  { left: 16px;  top: 50%; transform: translateY(-50%); }
.lb-next  { right: 16px; top: 50%; transform: translateY(-50%); }
.lb-download {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 10px 26px; border-radius: 5px;
  background: linear-gradient(90deg, var(--brand-2), var(--brand));
  color: #fff; font-size: 15px; font-weight: 600; line-height: 1.2;
  text-decoration: none; white-space: nowrap;
  box-shadow: 0 6px 18px rgba(232, 68, 127, 0.35);
  transition: transform .15s ease, box-shadow .15s ease;
}
.lb-download:hover { transform: translateY(-1px); box-shadow: 0 8px 22px rgba(232, 68, 127, 0.45); }
/* 微信浏览器内：仅作「长按保存」提示，不可点击 */
.lb-download.lb-tip {
  background: rgba(255, 255, 255, 0.12);
  border: 1px dashed rgba(255, 255, 255, 0.4);
  color: #ffe4ef; font-size: 14px; font-weight: 500;
  box-shadow: none; pointer-events: none; cursor: default;
}
.lb-count {
  position: absolute; bottom: 22px; left: 50%; transform: translateX(-50%);
  color: #fff; font-size: 13px; background: rgba(0, 0, 0, 0.4);
  padding: 5px 14px; border-radius: 20px;
}
.lightbox[hidden] { display: none; }

/* ================= Toast ================= */
.toast {
  position: fixed; left: 50%; top: 45%; transform: translate(-50%, -50%) scale(.92);
  background: rgba(35, 35, 43, 0.92); color: #fff;
  padding: 12px 24px; border-radius: 10px;
  font-size: 14.5px; font-weight: 600; opacity: 0; pointer-events: none;
  transition: opacity .2s ease, transform .2s ease;
  z-index: 200; max-width: 86vw; text-align: center;
  word-break: break-all;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .22);
}
.toast.show { opacity: 1; transform: translate(-50%, -50%) scale(1); }

/* ================= 手机 / 平板适配 ================= */
@media (max-width: 860px) {
  .header-inner {
    height: 60px; padding: 0 16px;
    grid-template-columns: auto 1fr;
    gap: 10px;
  }
  .logo-mark { width: 30px; height: 30px; border-radius: 8px; font-size: 15px; }
  .logo-text { font-size: 17px; }
  .logo-img { height: 36px; max-width: 160px; }
  #authArea { display: flex; }

  main { padding: 18px 14px 32px; }
  .section-head { margin-bottom: 14px; }
  .section-head h1 { font-size: 16px; }
  .masonry figure { margin-bottom: 10px; border-radius: 10px; }
  .badge { top: 7px; left: 7px; font-size: 11px; padding: 2px 7px; }

  .lightbox img { max-width: 96vw; max-height: calc(100vh - 176px); border-radius: 6px; }
  .lb-stage { padding: 52px 0 56px; gap: 12px; }
  .lightbox button { width: 42px; height: 42px; font-size: 22px; }
  .lb-prev { left: 8px; }
  .lb-next { right: 8px; }
  .lb-close { top: 12px; right: 12px; }
  .lb-download { padding: 9px 22px; font-size: 14px; min-height: 40px; }
  .lb-download.lb-tip { font-size: 13px; }
  .lb-count { bottom: 16px; }

  .nav-account {
    display: flex; flex-direction: column; gap: 8px;
    padding: 10px 2px 2px; margin-top: 4px;
    border-top: 1px solid var(--line);
  }
  .nav-account .btn-ghost,
  .nav-account .btn-primary {
    width: 100%; height: 42px; justify-content: center;
  }
}

/* ================= 创作者招募横幅（怎么买图条上方，点击进创作中心） ================= */
.creator-banner {
  display: block; width: 100%; margin: 0 0 14px;
  border-radius: 14px; overflow: hidden; line-height: 0;
  transition: transform .18s ease, box-shadow .18s ease;
}
.creator-banner img { display: block; width: 100%; height: auto; }
.creator-banner:hover { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(200, 60, 110, .18); }

/* ================= 平台数据计数条 ================= */
.stat-strip {
  display: flex; align-items: stretch; justify-content: space-between;
  margin: 0 0 16px; padding: 13px 8px;
  background: #fff; border: 1px solid #f8dcea; border-radius: 14px;
  box-shadow: 0 8px 22px rgba(232, 68, 127, .08);
}
.stat-item {
  flex: 1; min-width: 0; position: relative;
  display: flex; align-items: center; justify-content: center; gap: 9px;
  padding: 2px 6px;
}
.stat-item + .stat-item::before {
  content: ""; position: absolute; left: 0; top: 12%; height: 76%; width: 1px;
  background: linear-gradient(180deg, transparent, #f3cddf, transparent);
}
.stat-ico {
  width: 36px; height: 36px; flex: none;
  display: flex; align-items: center; justify-content: center;
  border-radius: 11px; color: #e8447f;
  background: linear-gradient(135deg, #ffe9f2, #ffd2e4);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8);
}
.stat-ico svg { width: 19px; height: 19px; }
.stat-txt { display: flex; flex-direction: column; min-width: 0; }
.stat-num {
  font-size: 22px; font-weight: 800; color: #e8447f; line-height: 1.12;
  font-variant-numeric: tabular-nums; letter-spacing: -.3px; white-space: nowrap;
}
.stat-num .stat-plus { font-size: .72em; font-weight: 800; margin-left: 1px; }
.stat-lbl { font-size: 11.5px; color: #b06a83; margin-top: 3px; white-space: nowrap; font-style: normal; }
@media (max-width: 640px) {
  .stat-strip { padding: 10px 2px; margin-bottom: 13px; border-radius: 12px; }
  .stat-item { gap: 5px; padding: 2px 2px; }
  .stat-ico { width: 26px; height: 26px; border-radius: 8px; }
  .stat-ico svg { width: 14px; height: 14px; }
  .stat-num { font-size: clamp(12.5px, 3.9vw, 16px); }
  .stat-lbl { font-size: 10px; margin-top: 2px; }
}
@media (max-width: 355px) { .stat-lbl { display: none; } }

/* ================= 促销横幅（统计条下方，纯展示无链接） ================= */
.promo-banner {
  display: block; width: 100%; margin: 0 0 16px;
  border-radius: 14px; overflow: hidden; line-height: 0;
  background: #fff3ea;
}
.promo-banner img { display: block; width: 100%; height: auto; }
@media (max-width: 640px) {
  .promo-banner { margin-bottom: 13px; border-radius: 12px; }
}

/* ================= 购买引导条 ================= */
.buy-banner {
  display: flex; align-items: center; gap: 12px;
  margin: 0 0 22px; padding: 14px 18px;
  background: linear-gradient(90deg, rgba(232, 68, 127, .08), rgba(255, 111, 165, .08));
  border: 1px solid rgba(232, 68, 127, .18);
  border-radius: 12px;
}
.buy-banner .bb-dot {
  flex: 0 0 auto; width: 10px; height: 10px; border-radius: 50%;
  background: var(--brand); box-shadow: 0 0 0 4px rgba(232, 68, 127, .18);
}
.buy-banner strong { color: var(--brand); margin-right: 4px; }
.buy-banner div { font-size: 13.5px; line-height: 1.6; color: #7a5563; }

/* ================= 图集商城 ================= */
.store-head {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 10px; margin: 4px 0 14px; flex-wrap: wrap;
}
.store-head h2 { font-size: 17px; font-weight: 700; color: var(--ink); }
.store-head span { font-size: 13px; color: var(--muted); }
.store-head .sh-right { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
/* 「复制栏目链接」小按钮：把当前分类的直达网址一键复制，便于外站引流 */
.sh-link {
  display: inline-flex; align-items: center; gap: 5px;
  border: 1px solid var(--line); background: #fff; color: var(--brand);
  padding: 6px 12px; border-radius: 5px; cursor: pointer;
  font-size: 12.5px; line-height: 1; font-family: inherit;
  transition: all .15s ease; min-height: 32px;
}
.sh-link svg { width: 14px; height: 14px; flex: none; }
.sh-link:hover { border-color: var(--brand-2); background: #fff5f9; }
.sh-link:active { transform: scale(.97); }

.chips { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 18px; }
.chip {
  border: 1px solid var(--line); background: #fff;
  padding: 8px 15px; border-radius: 5px; cursor: pointer;
  font-size: 14px; color: var(--text); font-family: inherit;
  transition: all .15s ease;
}
.chip:hover { border-color: var(--brand-2); color: var(--brand); }
.chip.active {
  background: linear-gradient(90deg, var(--brand-2), var(--brand));
  color: #fff; border-color: transparent;
  box-shadow: 0 4px 12px rgba(232, 68, 127, .25);
}
/* 手机端：复制链接按钮放大触控区到 38px 以上 */
@media (max-width: 760px) {
  .store-head { gap: 8px; }
  .store-head .sh-right { gap: 8px; }
  .sh-link { min-height: 38px; padding: 9px 14px; font-size: 13px; }
  .sh-link svg { width: 15px; height: 15px; }
}

.cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
@media (max-width: 1100px) { .cards { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px)  { .cards { grid-template-columns: repeat(2, 1fr); gap: 12px; } }

.card {
  background: #fff; border-radius: 14px; overflow: hidden;
  box-shadow: 0 4px 16px rgba(200, 140, 170, .14);
  display: flex; flex-direction: column;
  transition: transform .2s ease, box-shadow .2s ease;
}
.card:hover { transform: translateY(-3px); box-shadow: 0 12px 26px rgba(200, 120, 155, .24); }
.card .cover { position: relative; aspect-ratio: 3 / 4; background: #f4eef2; overflow: hidden; cursor: pointer; }
.card .cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.card .lock {
  position: absolute; inset: 0; background: rgba(20, 12, 18, .38);
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 13px; letter-spacing: .5px; pointer-events: none;
}
.card .body { padding: 11px 12px 13px; display: flex; flex-direction: column; gap: 9px; flex: 1; }
.card .title { font-size: 14px; font-weight: 600; color: var(--ink); line-height: 1.4; }
.card .meta { font-size: 12px; color: var(--muted); }
.card .price-row { display: flex; align-items: baseline; gap: 4px; margin-top: auto; }
.card .price { font-size: 18px; font-weight: 800; color: var(--brand); }
.card .price-unit { font-size: 12px; color: var(--muted); }
.card .buy-btn {
  margin-top: 4px; height: 38px; border: none; border-radius: 5px;
  font-size: 14px; font-weight: 600; color: #fff; font-family: inherit; cursor: pointer;
  background: linear-gradient(90deg, var(--brand-2), var(--brand));
  box-shadow: 0 4px 12px rgba(232, 68, 127, .25);
  transition: filter .15s, transform .15s;
}
.card .buy-btn:hover { filter: brightness(1.05); }
.card .buy-btn:active { transform: translateY(1px); }

/* 固定人脸图集 */
.person .cover { aspect-ratio: 1 / 1; }
.person .body { align-items: center; text-align: center; }

/* ================= 购买弹窗 ================= */
.modal { position: fixed; inset: 0; z-index: 150; display: flex; align-items: center; justify-content: center; }
.modal[hidden] { display: none; }
.modal-mask { position: absolute; inset: 0; background: rgba(24, 14, 20, .5); }
.modal-card {
  position: relative; width: min(380px, 90vw); max-height: 90vh; overflow-y: auto; -webkit-overflow-scrolling: touch;
  background: #fff; border-radius: 16px; padding: 24px 22px 22px;
  box-shadow: 0 20px 60px rgba(40, 20, 30, .3);
  animation: pop .18s ease;
}
@keyframes pop { from { transform: translateY(10px) scale(.97); opacity: 0; } to { transform: none; opacity: 1; } }
.modal-card h3 { font-size: 17px; color: var(--ink); margin-bottom: 6px; }
.modal-x {
  position: absolute; top: 12px; right: 14px; width: 30px; height: 30px;
  border: none; background: none; font-size: 22px; color: var(--muted); cursor: pointer; border-radius: 5px;
}
.modal-x:hover { background: #f5eef2; color: var(--ink); }
/* 手机端弹窗收紧，避免内边距过大顶到屏幕边缘 */
@media (max-width: 480px) {
  .modal-card { padding: 20px 16px 18px; border-radius: 14px; }
  .modal-x { top: 9px; right: 10px; }
}
.buy-price { font-size: 13.5px; color: var(--text); margin-bottom: 16px; }
.buy-price span { color: var(--brand); font-weight: 700; }
.qty { display: flex; align-items: center; justify-content: center; gap: 14px; margin-bottom: 16px; }
.qty button {
  width: 38px; height: 38px; border-radius: 5px; border: 1px solid var(--line);
  background: #fff; font-size: 20px; color: var(--ink); cursor: pointer;
}
.qty button:active { background: #f5eef2; }
.qty input { width: 56px; text-align: center; border: none; font-size: 18px; font-weight: 700; color: var(--ink); background: none; }
.buy-total { text-align: center; font-size: 15px; color: var(--ink); margin-bottom: 16px; }
.buy-total span { font-size: 22px; font-weight: 800; color: var(--brand); }
.buy-confirm {
  width: 100%; height: 44px; border: none; border-radius: 5px; font-size: 15px; font-weight: 700;
  color: #fff; font-family: inherit; cursor: pointer;
  background: linear-gradient(90deg, var(--brand-2), var(--brand));
  box-shadow: 0 6px 16px rgba(232, 68, 127, .3);
}
.buy-confirm:active { transform: translateY(1px); }
.buy-confirm:disabled { background: #e7dbe1; color: #b3a7ad; box-shadow: none; cursor: not-allowed; }
.buy-note { text-align: center; font-size: 12px; color: var(--muted); margin-top: 10px; }

/* 移动端抽屉内账户入口 */
.nav-account { display: none; }

/* ==================================================================
   分类即购买 · 购买模块
   ================================================================== */
.bal-badge {
  display: inline-flex; align-items: center; gap: 6px;
  height: 36px; padding: 0 14px; border-radius: 999px;
  background: linear-gradient(135deg, #fff1f7, #fff9fc);
  border: 1px solid rgba(232, 68, 127, .18);
  font-family: inherit; cursor: pointer; color: #a06a80;
  text-decoration: none;
  transition: border-color .15s, box-shadow .15s, transform .15s;
}
.bal-badge svg { width: 16px; height: 16px; flex: none; color: var(--brand); opacity: .9; }
.bal-badge .bb-lb { font-size: 12px; }
.bal-badge b { font-size: 14px; font-weight: 800; color: var(--brand); letter-spacing: .2px; }
.bal-badge:hover { border-color: var(--brand-2); box-shadow: 0 5px 14px rgba(232, 68, 127, .16); transform: translateY(-1px); }

/* 账号区统一胶囊按钮 */
.acct-btn {
  display: inline-flex; align-items: center; gap: 6px;
  height: 36px; padding: 0 13px; border-radius: 5px;
  background: #fff; border: 1px solid #f4e2ea;
  font-family: inherit; font-size: 14px; font-weight: 600; color: #7d5c6b;
  cursor: pointer; white-space: nowrap; text-decoration: none;
  transition: color .15s, border-color .15s, background .15s, box-shadow .15s, transform .15s;
}
.acct-btn svg { width: 16px; height: 16px; flex: none; opacity: .85; }
.acct-btn:hover { color: var(--brand); border-color: #f8c3d8; background: #fff8fb; box-shadow: 0 5px 14px rgba(232, 68, 127, .10); transform: translateY(-1px); }
.acct-btn .ab-av {
  width: 22px; height: 22px; border-radius: 50%; flex: none;
  display: grid; place-items: center; font-style: normal;
  font-size: 12px; font-weight: 800; color: #fff;
  background: linear-gradient(135deg, #ff9cc4, var(--brand));
  overflow: hidden;
}
.acct-btn .ab-av img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; display: block; }
.acct-btn .ab-lb { max-width: 108px; overflow: hidden; text-overflow: ellipsis; }
.acct-btn.admin-btn {
  color: var(--brand); border-color: rgba(232, 68, 127, .30);
  border-style: dashed; background: #fffafc;
}
.acct-btn.admin-btn:hover { border-style: solid; background: #fff1f7; }

.buy-panel {
  background: #fff; border-radius: 16px;
  border: 1px solid rgba(232, 68, 127, .10);
  box-shadow: 0 8px 26px rgba(200, 140, 170, .16);
  overflow: hidden; margin-bottom: 30px;
}
.bp-head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; flex-wrap: wrap;
  padding: 13px 20px;
  background: linear-gradient(90deg, #fff4f9, #fffdfe);
  border-bottom: 1px solid var(--line);
}
.bp-title { display: flex; align-items: center; gap: 9px; font-size: 16px; font-weight: 700; color: var(--ink); }
.bp-step {
  font-size: 11px; font-weight: 800; letter-spacing: .5px; color: #fff;
  padding: 3px 7px; border-radius: 6px;
  background: linear-gradient(135deg, #ff8ab8, var(--brand));
}
.bp-tags { display: flex; gap: 8px; flex-wrap: wrap; }
.bp-tags .tag {
  font-size: 12px; color: var(--brand);
  background: #fff0f7; border: 1px solid rgba(232, 68, 127, .18);
  padding: 3px 9px; border-radius: 6px;
}

.bp-body { display: grid; grid-template-columns: 1fr 272px; }
.bp-rows { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 15px; }
.bp-row { display: flex; align-items: flex-start; gap: 14px; flex-wrap: wrap; position: relative; }
.bp-row > label {
  flex: 0 0 62px; font-size: 13.5px; color: #8a7a82;
  height: 34px; display: flex; align-items: center;
}
.pills { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }

.pill {
  display: inline-flex; align-items: center; gap: 6px;
  height: 34px; padding: 0 14px; border-radius: 5px;
  border: 1px solid #f2e2ea; background: #fff;
  font-size: 13.5px; color: var(--text); font-family: inherit;
  cursor: pointer; transition: all .15s ease; white-space: nowrap;
}
.pill:hover { border-color: var(--brand-2); color: var(--brand); }
.pill.active {
  border-color: var(--brand); color: var(--brand);
  background: #fff5fa; font-weight: 600;
  box-shadow: inset 0 0 0 1px rgba(232, 68, 127, .12);
}
.pill img { width: 18px; height: 18px; border-radius: 50%; object-fit: cover; }

/* 创作者相册面板（选购卡内，尺寸不超过卡片） */
.creator-panel {
  flex: 1 1 260px; min-width: 0;
  background: #fff8fb; border: 1px dashed #f6cadd; border-radius: 10px;
  padding: 10px 12px; display: flex; flex-direction: column; gap: 9px;
}
.creator-search { display: flex; gap: 8px; }
.creator-search input {
  flex: 1; min-width: 0; height: 36px; padding: 0 12px;
  border: 1px solid #f2d9e5; border-radius: 5px; background: #fff;
  font-size: 13.5px; color: var(--text); font-family: inherit; outline: none;
  transition: border-color .15s;
}
.creator-search input:focus { border-color: var(--brand); }
.creator-search button {
  height: 36px; padding: 0 16px; border: none; border-radius: 5px;
  background: linear-gradient(135deg, #ff6fa5, var(--brand)); color: #fff;
  font-size: 13.5px; font-weight: 600; font-family: inherit; cursor: pointer;
}
.creator-chips {
  display: flex; flex-wrap: wrap; gap: 7px;
  max-height: 96px; overflow-y: auto; align-content: flex-start;
}
.c-chip {
  height: 28px; padding: 0 12px; border-radius: 5px;
  border: 1px solid #f2d9e5; background: #fff;
  font-size: 12.5px; color: #8a5a6e; font-family: inherit; cursor: pointer;
  max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  transition: all .15s ease;
}
.c-chip:hover { border-color: var(--brand); color: var(--brand); background: #fff5fa; }
.c-chip .c-cnt {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 18px; height: 18px; padding: 0 5px; margin-left: 6px;
  border-radius: 999px; background: #fde8ef; color: var(--brand);
  font-size: 11px; font-weight: 700; font-style: normal; line-height: 1;
}
.creator-loading, .creator-empty { font-size: 12.5px; color: #b99aab; padding: 2px 0; }
.creator-foot { display: flex; justify-content: flex-end; }
.creator-foot button {
  height: 28px; padding: 0 13px; border-radius: 5px;
  border: 1px solid #f2d9e5; background: #fff;
  font-size: 12.5px; color: var(--brand); font-family: inherit; cursor: pointer;
  transition: all .15s ease;
}
.creator-foot button:hover { background: #fff5fa; border-color: var(--brand); }
/* 创作者模式：只保留「图片类型」行 + 创作者面板，隐藏人物形象/比例/张数/优惠说明等 */
.bp-rows.creator-mode > .bp-row:not(#creatorRow):not(:first-child) { display: none; }
.bp-rows.creator-mode > .promo-note,
.bp-rows.creator-mode > .type-note { display: none; }

.ratio-shape {
  display: inline-block; border: 1.5px solid currentColor;
  border-radius: 2px; opacity: .9;
}
.ratio-shape.r34  { width: 10px; height: 13px; }
.ratio-shape.r916 { width: 9px;  height: 16px; }
.ratio-pill { min-width: 116px; justify-content: center; }

.qty-box {
  display: inline-flex; align-items: center;
  border: 1px solid #f2e2ea; border-radius: 8px; overflow: hidden; height: 34px;
}
.qty-box button {
  width: 34px; height: 32px; border: none; background: #fff;
  font-size: 17px; color: var(--ink); cursor: pointer; font-family: inherit;
  transition: background .15s, color .15s;
}
.qty-box button:hover { background: #fff5fa; color: var(--brand); }
.qty-box input {
  width: 54px; height: 32px; border: none; text-align: center;
  border-left: 1px solid #f7edf2; border-right: 1px solid #f7edf2;
  font-size: 15px; font-weight: 700; color: var(--ink);
  font-family: inherit; background: #fff;
  -moz-appearance: textfield;
}
.qty-box input:focus { outline: none; background: #fffbfd; }
.qty-box input::-webkit-outer-spin-button,
.qty-box input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.qty-quick { display: flex; gap: 6px; }
.qty-quick button {
  height: 34px; padding: 0 10px; border-radius: 5px;
  border: 1px dashed #f0dbe5; background: #fff;
  font-size: 12.5px; color: #97737f; font-family: inherit; cursor: pointer;
}
.qty-quick button:hover { border-color: var(--brand-2); color: var(--brand); border-style: solid; }
.stock-tip { font-size: 12px; color: var(--muted); height: 34px; display: flex; align-items: center; }

.bp-side {
  background: #fffbfd; border-left: 1px solid var(--line);
  padding: 18px 20px 18px; display: flex; flex-direction: column; gap: 9px;
}
.bp-line { display: flex; align-items: baseline; justify-content: space-between; font-size: 13px; color: #8a7a82; }
.bp-line b { color: var(--ink); font-weight: 600; }
.bp-line .bp-price { color: var(--brand); font-size: 15px; font-weight: 800; }
/* 折扣徽标：实时显示实际享受的折扣（如 8折 / 9折），不写死 */
.bp-disc {
  display: inline-block; margin-left: 6px; padding: 1px 8px; border-radius: 999px;
  background: linear-gradient(90deg, #ff7fb0, #e8447f); color: #fff;
  font-size: 12px; font-weight: 700; vertical-align: 1px;
}
/* 张数被库存截断时的提示 */
.qty-note {
  flex-basis: 100%; width: 100%; margin-top: 6px; padding: 7px 10px; border-radius: 8px;
  background: #fff4e6; color: #b3621a; font-size: 12.5px; line-height: 1.5;
}
.qty-note b { color: #e8447f; }

/* 超出库存的实时美化弹窗提示 */
.qty-popup {
  position: absolute; top: calc(100% + 6px); left: 62px; z-index: 60;
  display: flex; align-items: center; gap: 8px;
  max-width: 340px; padding: 10px 14px; border-radius: 12px;
  background: linear-gradient(135deg, #fff1f5 0%, #ffe1ec 100%);
  border: 1px solid #ffc2d6; color: #c2185b;
  font-size: 13px; font-weight: 600; line-height: 1.45;
  box-shadow: 0 12px 30px rgba(232, 68, 127, 0.22);
}
.qty-popup::before {
  content: ''; position: absolute; top: -6px; left: 18px;
  width: 12px; height: 12px; background: #ffe1ec;
  border-left: 1px solid #ffc2d6; border-top: 1px solid #ffc2d6;
  transform: rotate(45deg);
}
.qty-popup .qw-ico { flex: 0 0 auto; width: 18px; height: 18px; color: #e8447f; }
.qty-popup .qw-txt b { color: #e8447f; }
.qty-popup.pop { animation: qtyPopIn 0.3s cubic-bezier(0.2, 0.9, 0.3, 1.25); }
.qty-popup.hide { opacity: 0; transform: translateY(-6px) scale(0.96); pointer-events: none; transition: opacity 0.2s, transform 0.2s; }
@keyframes qtyPopIn { from { opacity: 0; transform: translateY(-8px) scale(0.95); } to { opacity: 1; transform: translateY(0) scale(1); } }
.bp-line i { font-style: normal; }
.bp-total {
  display: flex; align-items: baseline; justify-content: space-between;
  margin-top: 3px; padding-top: 11px; border-top: 1px dashed #f0dde7;
}
.bp-total span { font-size: 13px; color: #8a7a82; }
.bp-total b { font-size: 25px; font-weight: 800; color: var(--brand); line-height: 1; }
.bp-total b i { font-style: normal; font-size: 14px; margin-right: 2px; }
.bp-next {
  height: 44px; margin-top: 5px; border: none; border-radius: 5px;
  color: #fff; font-family: inherit; font-size: 15.5px; font-weight: 700;
  cursor: pointer; letter-spacing: .5px;
  background: linear-gradient(90deg, var(--brand-2), var(--brand));
  box-shadow: 0 6px 16px rgba(232, 68, 127, .28);
  transition: filter .15s, transform .15s;
}
.bp-next:hover { filter: brightness(1.04); }
.bp-next:active { transform: translateY(1px); }
.bp-note { font-size: 11.5px; color: #b7a3ad; text-align: center; line-height: 1.5; }

/* ==================================================================
   订单确认 / 成功 / 充值 弹窗
   ================================================================== */
.order-card { width: min(400px, 92vw); }
.oc-sub { font-size: 12.5px; color: var(--muted); margin-bottom: 14px; }

.oc-list {
  display: flex; flex-direction: column; gap: 0;
  border: 1px solid var(--line); border-radius: 10px; overflow: hidden;
}
.oc-list > div {
  display: flex; align-items: center; justify-content: space-between;
  padding: 9px 13px; font-size: 13.5px;
}
.oc-list > div:nth-child(odd) { background: #fffafc; }
.oc-list dt { color: #8a7a82; }
.oc-list dd { color: var(--ink); font-weight: 600; text-align: right; }

.oc-pay {
  display: flex; align-items: baseline; justify-content: space-between;
  margin: 14px 0 8px; padding: 12px 13px;
  background: linear-gradient(90deg, #fff1f8, #fff9fc);
  border-radius: 10px;
}
.oc-pay span { font-size: 13.5px; color: #8a6a7a; }
.oc-pay b { font-size: 24px; font-weight: 800; color: var(--brand); line-height: 1; }
.oc-pay b i { font-style: normal; font-size: 13px; margin-right: 2px; }

.oc-balance {
  display: flex; align-items: center; justify-content: space-between;
  padding: 8px 13px; font-size: 13.5px; color: #8a7a82;
  border-radius: 8px; background: #fbf7f9;
}
.oc-balance b { color: var(--ink); font-weight: 700; }
.oc-balance.low b { color: #e04545; }

.oc-warn {
  margin-top: 8px; padding: 8px 11px; border-radius: 8px;
  background: #fdeeee; color: #d33; font-size: 12.5px; line-height: 1.5;
}
.buy-confirm { margin-top: 14px; }
.buy-confirm[hidden] { display: none; }
.pay-recharge {
  margin-top: 14px;
  background: linear-gradient(90deg, #ff9c6e, #f2683c);
  box-shadow: 0 6px 16px rgba(242, 104, 60, .3);
}
.oc-note { text-align: center; font-size: 11.5px; color: #b7a3ad; margin-top: 10px; line-height: 1.5; }

.ok-card {
  width: min(340px, 90vw); text-align: center; padding: 34px 24px 22px;
  overflow: hidden; position: relative;
}
.ok-card::before {
  content: ''; position: absolute; top: -54px; right: -54px; width: 150px; height: 150px;
  border-radius: 50%; background: radial-gradient(circle, rgba(255,182,207,.35), transparent 70%);
  pointer-events: none;
}
.ok-card::after {
  content: ''; position: absolute; bottom: -62px; left: -52px; width: 140px; height: 140px;
  border-radius: 50%; background: radial-gradient(circle, rgba(255,214,229,.3), transparent 70%);
  pointer-events: none;
}
.ok-icon {
  width: 66px; height: 66px; margin: 0 auto 14px; border-radius: 50%;
  display: grid; place-items: center; color: #fff;
  background: linear-gradient(135deg, #ff8ab8, var(--brand));
  box-shadow: 0 10px 24px rgba(232, 68, 127, .32), 0 0 0 9px rgba(232, 68, 127, .07);
  animation: okPop .45s cubic-bezier(.34, 1.56, .64, 1);
  position: relative;
}
@keyframes okPop {
  0% { transform: scale(.35); opacity: 0; }
  70% { transform: scale(1.1); }
  100% { transform: scale(1); opacity: 1; }
}
.ok-icon svg { width: 32px; height: 32px; }
.ok-icon.ok-warn { background: linear-gradient(135deg, #ffb347, #ff8a3d); box-shadow: 0 8px 20px rgba(255, 138, 61, .32); }
.ok-icon.ok-danger { background: linear-gradient(135deg, #ff7a8a, #e23c4e); box-shadow: 0 8px 20px rgba(226, 60, 78, .32); }
.ok-sum.danger { background: linear-gradient(135deg, #fff1f3, #ffe7ea); border-color: #ffcdd4; color: #e23c4e; }
.ok-card h3 { font-size: 19px; margin-bottom: 14px; position: relative; }
.ok-sum {
  margin-bottom: 10px; padding: 12px 14px; border-radius: 14px;
  background: linear-gradient(135deg, #fff0f6, #ffe9f2);
  border: 1px solid #ffd9e8;
  font-size: 14.5px; font-weight: 700; color: var(--brand); line-height: 1.6;
  position: relative;
}
.ok-id { font-size: 11.5px; color: var(--muted); margin-bottom: 10px; position: relative; }
.ok-tip { font-size: 12.5px; color: #a98aa0; line-height: 1.65; margin-bottom: 18px; position: relative; }
.ok-tip b { color: var(--brand); }
.ok-main {
  display: flex; align-items: center; justify-content: center;
  width: 100%; height: 44px; border: none; border-radius: 5px;
  background: linear-gradient(135deg, #ff8ab8, var(--brand)); color: #fff;
  font-size: 14px; font-weight: 600; font-family: inherit; cursor: pointer;
  text-decoration: none; box-shadow: 0 6px 16px rgba(232, 68, 127, .28);
  transition: transform .12s ease, box-shadow .12s ease; position: relative;
}
.ok-main:hover { transform: translateY(-1px); box-shadow: 0 8px 18px rgba(232, 68, 127, .34); }
.ok-back {
  display: flex; align-items: center; justify-content: center;
  width: 100%; height: 38px; margin-top: 6px; border: none; background: none;
  color: var(--muted); font-size: 13px; font-family: inherit; cursor: pointer;
  text-decoration: none; position: relative; border-radius: 5px;
}
.ok-back:hover { color: var(--brand); }

/* 未购买提示（整张图片代替弹窗，图片自带粉色描边，页面不再加边框；点击图片即关闭） */
.modal-card.lock-img-card {
  width: min(430px, 92vw); max-width: none; max-height: none;
  padding: 0; background: none; border: none; border-radius: 0; box-shadow: none;
  overflow: visible; cursor: pointer; z-index: 2;
  -webkit-tap-highlight-color: transparent;
  transition: transform .14s ease;
}
.modal-card.lock-img-card:active { transform: scale(.985); }
.modal-card.lock-img-card:focus-visible { outline: 2px solid var(--brand); outline-offset: 6px; }
.lock-img {
  display: block; width: 100%; height: auto; border-radius: 0;
  user-select: none; -webkit-user-select: none; -webkit-user-drag: none;
  pointer-events: none;
}
@media (max-width: 480px) {
  .modal-card.lock-img-card { width: 90vw; }
}
/* 会员已到期提示弹窗（首页搜索命中已到期创作者） */
.exp-card { width: min(340px, 88vw); text-align: center; padding: 30px 22px 20px; overflow: hidden; border-radius: 22px; }
.exp-card::before { content:''; position:absolute; top:-52px; right:-52px; width:140px; height:140px; border-radius:50%; background:radial-gradient(circle, rgba(240,180,106,.34), transparent 70%); pointer-events:none; }
.exp-card::after { content:''; position:absolute; bottom:-60px; left:-50px; width:130px; height:130px; border-radius:50%; background:radial-gradient(circle, rgba(255,221,180,.3), transparent 70%); pointer-events:none; }
.exp-ico { width:58px; height:58px; margin:0 auto 14px; border-radius:18px; display:grid; place-items:center; color:#fff; background:linear-gradient(135deg,#f6c06a,#e08a2e); box-shadow:0 10px 22px rgba(224,138,46,.32), 0 0 0 8px rgba(224,138,46,.08); position:relative; }
.exp-ico svg { width:26px; height:26px; }
.exp-card h3 { font-size:18px; margin:0 0 8px; color:#b9701a; position:relative; }
.exp-text { font-size:13px; color:#8a6f5a; line-height:1.8; margin:0 0 18px; position:relative; }
.exp-text b { color:#e08a2e; font-weight:600; }
.exp-actions { display:flex; justify-content:center; position:relative; }
.exp-btn { flex:0 0 auto; min-width:150px; height:42px; border:none; border-radius:5px; background:linear-gradient(135deg,#f6c06a,#e08a2e); color:#fff; font-size:13.5px; font-weight:600; font-family:inherit; cursor:pointer; box-shadow:0 6px 14px rgba(224,138,46,.3); display:inline-flex; align-items:center; justify-content:center; transition:transform .12s ease, box-shadow .12s ease; }
.exp-btn:hover { box-shadow:0 8px 18px rgba(224,138,46,.4); }
.exp-btn:active { transform:scale(.96); }
.lock-ghost {
  flex: 1; height: 42px; border: none; border-radius: 5px;
  background: #f7edf2; color: #a98d99; font-size: 13.5px; font-family: inherit; cursor: pointer;
  transition: background .12s ease, color .12s ease;
}
.lock-ghost:hover { background: #f2e2ea; color: var(--brand); }

/* ================= 联系客服确认（虚拟库存）弹窗 ================= */
.modal-card.cm-card {
  width: min(360px, 92vw);
  padding: 0;
  border-radius: 22px;
  overflow-y: auto; overflow-x: hidden;
  max-height: 92vh;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  box-shadow: 0 24px 64px rgba(58, 24, 38, .3);
}
.cm-head {
  position: relative; overflow: hidden; text-align: center;
  padding: 24px 22px 22px;
  background: linear-gradient(150deg, #ffcf83 0%, #ffa05f 46%, #ff7f8c 100%);
  color: #fff;
}
.cm-orb {
  position: absolute; width: 190px; height: 190px; border-radius: 50%;
  top: -120px; right: -56px; background: rgba(255, 255, 255, .17);
}
.cm-head::after {
  content: ''; position: absolute; width: 132px; height: 132px; border-radius: 50%;
  bottom: -88px; left: -46px; background: rgba(255, 255, 255, .12);
}
.cm-icon {
  position: relative; width: 56px; height: 56px; margin: 0 auto 12px;
  border-radius: 50%; display: grid; place-items: center;
  color: #fff; background: rgba(255, 255, 255, .22);
  border: 1px solid rgba(255, 255, 255, .55);
  box-shadow: 0 8px 20px rgba(150, 62, 24, .18);
}
.cm-icon svg { width: 27px; height: 27px; }
.cm-head h3 {
  position: relative; margin: 0 0 6px;
  font-size: 18.5px; font-weight: 800; letter-spacing: .3px;
  color: #fff; text-shadow: 0 1px 2px rgba(140, 60, 20, .18);
}
.cm-sub { position: relative; font-size: 12.5px; color: rgba(255, 255, 255, .92); }
.cm-body { padding: 16px 18px 0; }
.cm-order {
  background: #fffafc; border: 1px solid #fbe6ee; border-radius: 14px;
  padding: 13px 14px 12px;
}
.cm-order-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.cm-name { font-size: 14px; font-weight: 700; color: var(--ink); line-height: 1.35; }
.cm-badge {
  flex: 0 0 auto; font-size: 11px; font-weight: 700; color: #d4762a;
  background: #fff2e2; border: 1px solid #ffe2c2; border-radius: 20px; padding: 2px 9px;
}
.cm-stats {
  display: grid; grid-template-columns: repeat(3, 1fr);
  margin-top: 12px; padding-top: 11px; border-top: 1px dashed #f6dde8;
}
.cm-stat { text-align: center; }
.cm-stat + .cm-stat { border-left: 1px solid #f7e4ec; }
.cm-stat span { display: block; font-size: 11px; color: #b09aa5; margin-bottom: 3px; }
.cm-stat b { font-size: 13.5px; font-weight: 700; color: var(--ink); }
.cm-stat b.cm-price { color: var(--brand); }
.cm-no {
  margin-top: 10px; font-size: 11px; color: #bba7b1; text-align: center;
  word-break: break-all;
}
.cm-no em { font-style: normal; font-family: monospace; color: #9b8590; }
.cm-note {
  display: flex; gap: 8px; margin-top: 12px;
  background: #fff8f0; border: 1px solid #ffe9d3; border-radius: 12px;
  padding: 11px 12px;
}
.cm-note-ico { flex: 0 0 auto; width: 15px; height: 15px; margin-top: 1px; color: #e08b3c; }
.cm-note p { font-size: 12px; line-height: 1.65; color: #b07a4e; }
.cm-note b { color: #b8662a; }
.cm-foot { padding: 16px 18px 18px; }
.cm-main {
  width: 100%; height: 46px; border: none; border-radius: 5px;
  background: linear-gradient(90deg, #ff8ab8, var(--brand) 55%, #f4487f);
  color: #fff; font-size: 15px; font-weight: 700; font-family: inherit;
  cursor: pointer; box-shadow: 0 10px 22px rgba(232, 68, 127, .32);
  transition: transform .12s ease, filter .15s ease;
}
.cm-main:hover { filter: brightness(1.05); }
.cm-main:active { transform: translateY(1px); }
.cm-ghost {
  width: 100%; height: 42px; margin-top: 10px;
  border: 1px solid #f2e2ea; border-radius: 5px; background: #fff;
  color: #9b8590; font-size: 13.5px; font-family: inherit; cursor: pointer;
  transition: all .15s;
}
.cm-ghost:hover { border-color: #f8d6e4; color: var(--brand); background: #fffafc; }
.cm-ghost:active { transform: translateY(1px); }

.rc-amounts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.rc-amt {
  height: 46px; border-radius: 5px; border: 1px solid #f2e2ea;
  background: #fff; font-size: 14.5px; font-weight: 600; color: var(--text);
  font-family: inherit; cursor: pointer; transition: all .15s;
}
.rc-amt:hover { border-color: var(--brand-2); color: var(--brand); }
.rc-amt.active {
  border-color: var(--brand); color: var(--brand); background: #fff5fa;
  box-shadow: inset 0 0 0 1px rgba(232, 68, 127, .12);
}
.rc-custom { display: flex; align-items: center; gap: 10px; margin: 12px 0 4px; }
.rc-custom label { font-size: 13px; color: #8a7a82; flex: 0 0 auto; }
.rc-custom input {
  flex: 1; height: 38px; border: 1px solid #f2e2ea; border-radius: 5px;
  padding: 0 12px; font-size: 14px; font-family: inherit; color: var(--ink);
  background: #fff; -moz-appearance: textfield;
}
.rc-custom input:focus { outline: none; border-color: var(--brand-2); }
.rc-custom input::-webkit-outer-spin-button,
.rc-custom input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.rc-max-tip { font-size: 11.5px; color: #b7a3ad; margin: 5px 0 0; }
.rc-over { display: flex; align-items: center; gap: 6px; font-size: 12px; color: #e04545; font-weight: 600; margin: 6px 0 0; }
.rc-over-ico { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; border-radius: 50%; background: #e04545; color: #fff; font-size: 11px; font-weight: 800; flex: 0 0 auto; }
.rc-custom input.over { border-color: #e04545; background: #fff6f6; }
.rc-custom input.over:focus { border-color: #e04545; }

/* 充值：支付方式选择 */
.oc-tip { margin: 16px 0 8px; font-size: 13px; color: #b06a86; font-weight: 600; }
.rc-methods { display: flex; gap: 10px; margin-bottom: 16px; }
.rc-method {
  flex: 1; height: 48px; border: 1.5px solid #f2c6d6; background: #fff;
  border-radius: 5px; font-size: 15px; font-weight: 600; color: #c2567f;
  font-family: inherit; cursor: pointer; transition: .15s;
}
.rc-method:hover { border-color: var(--brand-2); }
.rc-method.active {
  background: linear-gradient(135deg, #ff7eb3, #ff5e9c); color: #fff;
  border-color: #ff5e9c; box-shadow: 0 4px 12px rgba(255, 94, 156, .3);
}

/* 充值：扫码支付步骤（直接渲染二维码图片，不再嵌 iframe） */
.rc-pay-amount {
  text-align: center;
  margin: 4px 0 14px;
  padding: 14px 10px 12px;
  background: linear-gradient(135deg, #fff0f6 0%, #ffe3ee 100%);
  border: 1px solid #f6c9da;
  border-radius: 16px;
}
.rc-pa-label { font-size: 12.5px; color: #b76a8a; letter-spacing: 1px; }
.rc-pa-value {
  font-size: 40px; font-weight: 800; line-height: 1.1; color: #e8336e;
  margin: 4px 0 6px; font-family: inherit;
}
.rc-pa-value b { font-weight: 800; }
.rc-pa-method {
  display: inline-block; font-size: 13px; font-weight: 700; color: #fff;
  background: #e8336e; border-radius: 999px; padding: 3px 14px;
}
.rc-qr-wrap {
  position: relative;
  width: 100%;
  display: flex; align-items: center; justify-content: center;
  padding: 10px 0 6px;
}
.rc-qr-img {
  display: block;
  width: 100%;
  max-width: 260px;
  height: auto;
  border: 1px solid #f0d4de;
  border-radius: 14px;
  background: #fff;
  padding: 8px;
  box-sizing: border-box;
}
.rc-qr-loading {
  width: 100%; max-width: 260px; height: 200px;
  display: flex; align-items: center; justify-content: center;
  border: 1px dashed #f0d4de; border-radius: 14px; background: #fffafc;
  color: #b98aa2; font-size: 13.5px; text-align: center; padding: 0 16px; box-sizing: border-box;
}
.rc-qr-tip {
  text-align: center; font-size: 13px; color: #a8768d;
  margin: 2px 0 8px;
}
.rc-scan-tip {
  text-align: center; font-size: 12.5px; line-height: 1.6; color: #8a6d2f;
  background: #fff8e6; border: 1px solid #f3e0a8; border-radius: 12px;
  padding: 9px 12px; margin: 0 0 10px;
}
.rc-scan-tip b { color: #b8860b; }
.rc-pay-actions { display: flex; gap: 10px; }
.buy-ghost {
  flex: 1; height: 42px; border: 1px solid #f2c6d6; background: #fff;
  border-radius: 5px; font-size: 14px; font-weight: 600; color: #c2567f;
  font-family: inherit; cursor: pointer; transition: .15s;
}
.buy-ghost:hover { background: #fff5fa; border-color: var(--brand-2); }

/* 生成订单前的提示确认层 */
.rc-notice { position: absolute; inset: 0; z-index: 6; display: flex; align-items: center; justify-content: center; padding: 20px; }
.rc-notice[hidden] { display: none; }
.rc-notice-mask { position: absolute; inset: 0; background: rgba(24, 14, 20, .38); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); }
.rc-notice-card {
  position: relative; width: min(320px, 84vw); background: #fff;
  border-radius: 16px; padding: 26px 22px 20px; text-align: center;
  box-shadow: 0 18px 50px rgba(40, 20, 30, .28);
  animation: pop .18s ease;
}
.rc-notice-ico {
  width: 48px; height: 48px; margin: 0 auto 15px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, #ffe6f0, #ffd2e4); color: #e8447f;
}
.rc-notice-ico svg { width: 25px; height: 25px; }
.rc-notice-txt { font-size: 14px; line-height: 1.8; color: #4a3b42; margin: 0 0 20px; }
.rc-notice-em { color: #e8447f; font-weight: 700; }
.rc-notice-ok {
  width: 100%; height: 44px; border: none; border-radius: 8px;
  font-size: 15px; font-weight: 700; color: #fff; font-family: inherit; cursor: pointer;
  background: linear-gradient(90deg, #f45c87, #e8447f);
  box-shadow: 0 6px 16px rgba(232, 68, 127, .3);
}
.rc-notice-ok:active { transform: translateY(1px); }
@media (max-width: 760px) {
  .rc-qr-img, .rc-qr-loading { max-width: 220px; }
  .rc-qr-loading { height: 170px; }
}

/* ==================================================================
   我的图片
   ================================================================== */
.mine-head {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  margin: 2px 0 18px;
}
.mine-head h1 { font-size: 19px; font-weight: 700; color: var(--ink); }
.mine-head span { font-size: 12.5px; color: var(--muted); }
.back-btn {
  height: 38px; padding: 0 20px; border-radius: 5px;
  border: none; background: linear-gradient(135deg, #ff7fae, #e8447f);
  color: #fff; font-size: 14.5px; font-weight: 800; font-family: inherit; cursor: pointer;
  letter-spacing: .5px;
  box-shadow: 0 5px 16px rgba(232, 68, 127, .38), inset 0 1px 0 rgba(255, 255, 255, .28);
  transition: filter .15s, transform .1s, box-shadow .15s;
  display: inline-flex; align-items: center; gap: 6px;
}
.back-btn::before { content: "‹"; font-size: 19px; font-weight: 700; margin-top: -2px; }
.back-btn:hover { filter: brightness(1.07); box-shadow: 0 7px 20px rgba(232, 68, 127, .46), inset 0 1px 0 rgba(255, 255, 255, .28); }
.back-btn:active { transform: scale(.95); }

.mine-balance {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; padding: 18px 22px; margin-bottom: 20px;
  border-radius: 14px; color: #fff;
  background: linear-gradient(120deg, #ff8ab8, var(--brand));
  box-shadow: 0 10px 26px rgba(232, 68, 127, .24);
}
.mb-label { font-size: 12.5px; opacity: .9; }
.mb-value { font-size: 27px; font-weight: 800; margin-top: 3px; line-height: 1; }
.mb-btn {
  height: 38px; padding: 0 18px; border-radius: 5px; border: none;
  background: #fff; color: var(--brand); font-size: 14px; font-weight: 700;
  font-family: inherit; cursor: pointer; flex: 0 0 auto;
}
.mb-btn:active { transform: translateY(1px); }

.mine-empty {
  background: #fff; border-radius: 14px; padding: 54px 20px;
  text-align: center; color: var(--muted); font-size: 14px;
  box-shadow: 0 4px 16px rgba(200, 140, 170, .12);
}
.mine-empty .me-icon { width: 56px; height: 56px; margin: 0 auto 10px; opacity: .7; color: #e8447f; }
.mine-empty .me-icon svg { width: 100%; height: 100%; display: block; }
.me-btn {
  margin-top: 16px; height: 40px; padding: 0 26px; border: none; border-radius: 5px;
  color: #fff; font-size: 14px; font-weight: 600; font-family: inherit; cursor: pointer;
  background: linear-gradient(90deg, var(--brand-2), var(--brand));
}

.order-item {
  background: #fff; border-radius: 14px; overflow: hidden;
  box-shadow: 0 4px 16px rgba(200, 140, 170, .13);
  margin-bottom: 16px;
}
.oi-head {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 14px; padding: 14px 18px;
  background: linear-gradient(90deg, #fff7fb, #fff);
  border-bottom: 1px solid var(--line);
}
.oi-info { display: flex; flex-direction: column; gap: 4px; min-width: 0; flex: 1 1 auto; }
.oi-title { font-size: 14.5px; font-weight: 700; color: var(--ink); }
.oi-sub { font-size: 12.5px; color: #8a7a82; }
.oi-meta { font-size: 11.5px; color: #b7a3ad; }
.oi-amount { text-align: right; flex: 0 0 auto; }
.oi-amount span { display: block; font-size: 11.5px; color: var(--muted); }
.oi-amount b { font-size: 18px; font-weight: 800; color: var(--brand); }

.oi-thumbs {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: 10px; padding: 14px 18px 18px;
}
.oi-thumb {
  position: relative; display: block; border-radius: 10px; overflow: hidden;
  aspect-ratio: 3 / 4; background: #f7eef3;
}
.oi-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.oi-thumb img.zoomable { cursor: zoom-in; transition: transform .25s ease; }
.oi-thumb:hover img.zoomable { transform: scale(1.04); }
/* 悬停放大镜提示，引导点击看原图 */
.oi-zoom {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%) scale(.8);
  width: 38px; height: 38px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: rgba(232, 68, 127, .92); color: #fff;
  box-shadow: 0 6px 16px rgba(0, 0, 0, .28); opacity: 0; transition: opacity .2s, transform .2s;
  pointer-events: none;
}
.oi-zoom svg { width: 20px; height: 20px; }
.oi-thumb:hover .oi-zoom { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.oi-no {
  position: absolute; left: 6px; top: 6px; font-size: 10.5px; color: #fff;
  background: rgba(0, 0, 0, .45); padding: 2px 6px; border-radius: 5px;
}
.oi-dl {
  position: absolute; left: 6px; right: 6px; bottom: 6px;
  height: 26px; display: flex; align-items: center; justify-content: center;
  font-size: 12px; color: #fff; border-radius: 5px;
  background: rgba(232, 68, 127, .88);
  opacity: 0; transform: translateY(4px);
  transition: opacity .18s ease, transform .18s ease;
}
.oi-thumb:hover .oi-dl { opacity: 1; transform: none; }
/* 微信内：下载无效，改用"长按图片保存"提示（常显、不可点击） */
.oi-dl.oi-dl-tip {
  opacity: 1 !important; pointer-events: none; cursor: default;
  background: rgba(40, 20, 30, .62);
  border: 1px dashed rgba(255, 255, 255, .75);
  color: #fff; font-size: 11px;
}

/* 我的图片：48h 提醒 / 栏目筛选 / 单张删除 / 到期说明 */
.mine-tip {
  margin: 10px 0 4px; padding: 11px 14px; border-radius: 10px;
  background: #fff4f7; border: 1px solid #ffd9e6; color: #c23a6b;
  font-size: 13px; line-height: 1.55;
}
.mine-tip b { color: var(--brand); }
.mine-cats { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0 14px; }
.mc-pill {
  border: 1px solid var(--line); background: #fff; color: #7a6a73;
  padding: 6px 14px; border-radius: 5px; font-size: 13px; cursor: pointer;
  transition: all .15s ease;
}
.mc-pill:hover { border-color: var(--brand-2); color: var(--brand); }
.mc-pill.active {
  background: linear-gradient(90deg, var(--brand-2), var(--brand));
  border-color: transparent; color: #fff; font-weight: 600;
}
.oi-thumb .oi-time {
  position: absolute; left: 6px; top: 28px; z-index: 2;
  font-size: 10.5px; color: #fff; background: rgba(232, 68, 127, .88);
  padding: 2px 6px; border-radius: 5px; white-space: nowrap;
}
.oi-thumb .oi-del {
  position: absolute; right: 6px; top: 6px; z-index: 3;
  font-size: 11px; line-height: 1; color: #fff; cursor: pointer;
  background: rgba(40, 20, 30, .5); border: none; border-radius: 5px; padding: 4px 7px;
  transition: background .15s ease;
}
.oi-thumb .oi-del:hover { background: #d23b3b; }
.oi-thumb .oi-del.armed { background: #d23b3b; }
/* 创作者相册筛选：缩略图右上角创作者昵称角标（点击进创作者相册） */
.oi-thumb .oi-owner {
  position: absolute; right: 6px; top: 6px; z-index: 3; max-width: 72%;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  font-size: 11px; font-weight: 600; color: #fff; text-decoration: none;
  background: rgba(232, 68, 127, .88); padding: 3px 8px; border-radius: 20px;
  line-height: 1.4; box-shadow: 0 2px 6px rgba(200, 60, 110, .25);
  transition: background .15s ease;
}
.oi-thumb .oi-owner:hover { background: #e8447f; }
/* 创作者订单卡片：单笔「打包下载本单」按钮 */
.oi-amount .oi-pack {
  display: inline-block; margin-top: 7px; padding: 4px 11px; border-radius: 5px;
  border: 1.5px solid var(--brand); color: var(--brand); font-size: 11.5px;
  font-weight: 600; text-decoration: none; transition: all .15s ease;
}
.oi-amount .oi-pack:hover { background: var(--brand); color: #fff; }
.oi-thumb.deleted { background: #f3eef1; }
.oi-del-note {
  width: 100%; height: 100%; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 7px; text-align: center;
  color: #a3929b; font-size: 12px; padding: 8px; line-height: 1.5;
}
.oi-del-note small { color: #bcabb3; }
.oi-del-ic {
  width: 30px; height: 30px; border-radius: 50%; background: #e7dce3;
  color: #b09aa6; font-size: 18px; line-height: 30px;
}

.nav-bal { font-size: 13px; color: #8a7a82; padding: 4px 2px 2px; }
.nav-bal b { color: var(--brand); }

/* ==================================================================
   购买模块 · 手机端
   ================================================================== */
@media (max-width: 900px) {
  .bp-body { grid-template-columns: 1fr; }
  .bp-side { border-left: none; border-top: 1px solid var(--line); }
}
@media (max-width: 860px) {
  /* 余额徽标保留常显：手机端登录后也能一眼看到余额、点击充值（旧版曾收进抽屉，抽屉已下线） */
  .buy-panel { border-radius: 13px; margin-bottom: 24px; }
  .bp-head { padding: 11px 14px; }
  .bp-title { font-size: 15px; }
  .bp-tags .tag { font-size: 11px; padding: 2px 7px; }
  .bp-rows { padding: 14px 14px 16px; gap: 13px; }
  .bp-row { flex-direction: column; gap: 8px; }
  .bp-row > label { height: auto; font-size: 13px; }
  .stock-tip { height: auto; }
  .pill { height: 32px; padding: 0 12px; font-size: 13px; }
  .bp-side { padding: 14px; }
  .bp-total b { font-size: 23px; }
  .order-card { width: 92vw; }
  .rc-amounts { grid-template-columns: repeat(2, 1fr); }
  .mine-head { gap: 10px; }
  .mine-head h1 { font-size: 17px; }
  .mine-head span { width: 100%; }
  .mine-balance { padding: 15px 16px; border-radius: 12px; }
  .mb-value { font-size: 24px; }
  .oi-head { padding: 12px 14px; gap: 10px; }
  .oi-amount b { font-size: 16px; }
  .oi-dl { opacity: 1; transform: none; }
  .oi-thumbs { padding: 12px 14px 14px; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 8px; }
}

/* ==================================================================
   人物形象（固定人脸图集）
   ================================================================== */
.person-slot { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-height: 34px; }

.person-pick {
  display: inline-flex; align-items: center; gap: 6px;
  height: 34px; padding: 0 14px; border-radius: 5px;
  border: 1px dashed #f0b9d0; background: #fff8fb;
  font-size: 13.5px; color: var(--brand); font-family: inherit; cursor: pointer;
  transition: all .15s ease;
}
.person-pick:hover { border-style: solid; border-color: var(--brand); background: #fff2f8; }
.pp-plus { font-size: 15px; font-weight: 700; line-height: 1; }

.person-chip {
  display: inline-flex; align-items: center; gap: 8px;
  height: 34px; padding: 0 10px 0 4px; border-radius: 18px;
  border: 1px solid rgba(232, 68, 127, .3); background: #fff5fa;
  font-family: inherit; cursor: pointer; transition: all .15s ease;
}
.person-chip:hover { border-color: var(--brand); background: #fff0f7; box-shadow: 0 3px 10px rgba(232, 68, 127, .12); }
.person-chip img {
  width: 26px; height: 26px; border-radius: 50%; object-fit: cover;
  border: 1.5px solid #fff; box-shadow: 0 1px 4px rgba(200, 120, 160, .3);
}
.pc-name { font-size: 13.5px; font-weight: 700; color: var(--brand); }
.pc-change { font-size: 11.5px; color: #b98aa0; padding-left: 2px; }
.person-chip:hover .pc-change { color: var(--brand); }

.person-star {
  width: 34px; height: 34px; border-radius: 5px;
  border: 1px solid #f2e2ea; background: #fff;
  font-size: 16px; line-height: 1; color: #d9bccb;
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer; font-family: inherit; transition: all .15s ease;
}
.person-star:hover { border-color: #ffc94d; color: #f0a500; }
.person-star.on { border-color: #ffd98a; background: #fffaec; color: #f5a300; }
.person-star svg { width: 18px; height: 18px; display: block; }
.person-star.on svg { fill: currentColor; }

.person-fav-tag {
  font-size: 11.5px; color: #b8860b;
  background: #fffaec; border: 1px solid #ffe4ad;
  padding: 2px 8px; border-radius: 6px;
}

.bp-next:disabled, .bp-next.is-off {
  background: linear-gradient(90deg, #f4d3e1, #eec6d8);
  box-shadow: none; cursor: not-allowed;
}

/* ================= 选择人物形象弹窗（简洁版） ================= */
.person-card { width: min(380px, 90vw); max-height: 94vh; overflow-y: auto; }
.person-card h3 { margin-bottom: 14px; }

.pm-stage { position: relative; display: flex; justify-content: center; }
.pm-figure { display: flex; justify-content: center; min-width: 0; }
.pm-figure img {
  display: block; height: clamp(200px, 42vh, 360px);
  width: auto; max-width: 100%;
  border-radius: 12px; object-fit: cover;
}

.pm-arrow {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 32px; height: 32px; border-radius: 50%; border: none;
  background: rgba(255, 255, 255, .92); color: var(--brand);
  font-size: 18px; line-height: 1; cursor: pointer; font-family: inherit;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 2px 8px rgba(180, 90, 130, .22);
  transition: background .15s ease;
}
.pm-arrow:hover  { background: #fff; }
.pm-arrow:active { transform: translateY(-50%) scale(.94); }
.pm-arrow.prev { left: 8px; }
.pm-arrow.next { right: 8px; }

.pm-meta {
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px; margin-top: 12px;
}
.pm-who { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
.pm-who b { font-size: 15px; color: var(--ink); white-space: nowrap; }
.pm-who span { font-size: 12px; color: var(--muted); }

.pm-star {
  flex: 0 0 auto; width: 32px; height: 32px; border-radius: 50%;
  border: 1px solid #f2e2ea; background: #fff;
  font-size: 15px; line-height: 1; color: #d6bcc7;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; font-family: inherit; transition: all .15s ease;
}
.pm-star:hover { border-color: #ffc94d; color: #f0a500; }
.pm-star.on { border-color: #ffd98a; background: #fffaec; color: #f5a300; }
.pm-star svg { width: 18px; height: 18px; display: block; }
.pm-star.on svg { fill: currentColor; }

.pm-favs { margin-top: 10px; }
.pm-favs[hidden] { display: none; }
.pm-favs-list { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; }
.pm-fav-chip {
  width: 30px; height: 30px; padding: 0; border-radius: 50%;
  border: 2px solid transparent; background: none; cursor: pointer;
  transition: all .15s ease;
}
.pm-fav-chip img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; display: block; }
.pm-fav-chip:hover { border-color: #ffd98a; }
.pm-fav-chip.active { border-color: var(--brand); }

.pm-dots { display: flex; justify-content: center; gap: 6px; margin: 12px 0 0; }
.pm-dot {
  width: 6px; height: 6px; border-radius: 50%; border: none; padding: 0;
  background: #f0d5e2; cursor: pointer; transition: all .15s ease;
}
.pm-dot.active { width: 16px; border-radius: 3px; background: var(--brand); }

.person-card .buy-confirm { margin-top: 16px; }

@media (max-width: 860px) {
  .person-slot { gap: 7px; }
  .person-card { padding: 20px 16px 18px; }
  .pm-figure img { height: clamp(180px, 38vh, 320px); }
}

/* ================= 头部登录态容器 ================= */
#authArea { display: flex; align-items: center; gap: 6px; }

/* ================= 登录 / 注册弹窗 ================= */
.auth-tabs { display: flex; gap: 8px; margin-bottom: 16px; }
.atab {
  flex: 1; height: 38px; border-radius: 8px; border: 1px solid #f0d0df;
  background: #fff; color: #8a6a78; font-size: 14.5px; font-family: inherit; cursor: pointer;
}
.atab.active { background: linear-gradient(90deg, #ff7fb0, #e8447f); color: #fff; border-color: transparent; font-weight: 600; }
.auth-form { display: flex; flex-direction: column; gap: 12px; }
.inp {
  width: 100%; height: 44px; border: 1px solid #f0d0df; border-radius: 5px;
  padding: 0 14px; font-size: 15px; font-family: inherit; outline: none;
}
.inp:focus { border-color: var(--brand); }
.code-row { display: flex; gap: 8px; }
.code-row .inp { flex: 1; }
.code-btn {
  flex: 0 0 auto; padding: 0 14px; height: 44px; border-radius: 5px;
  border: 1px solid var(--brand); background: #fff; color: var(--brand);
  font-size: 13.5px; font-family: inherit; cursor: pointer; white-space: nowrap;
}
.code-btn:disabled { color: #b9a3ad; border-color: #ecd6e1; cursor: not-allowed; }
.auth-msg { color: var(--brand); font-size: 13px; min-height: 16px; margin: 0; text-align: center; }

/* ================= 我的图片 · 批量下载 ================= */
.mine-toolbar {
  display: flex; align-items: center; gap: 14px; margin: 4px 0 14px;
  padding: 10px 14px; background: #fff; border: 1px solid var(--line); border-radius: 12px;
  position: sticky; top: 8px; z-index: 5;
}
.mt-check { display: flex; align-items: center; gap: 6px; font-size: 14px; color: var(--ink); cursor: pointer; }
.mt-check input { width: 17px; height: 17px; accent-color: var(--brand); }
.mt-info { font-size: 13.5px; color: #8a7a82; }
.mt-info b { color: var(--brand); }
.mt-dl {
  margin-left: auto; height: 36px; padding: 0 18px; border: none; border-radius: 5px;
  background: linear-gradient(90deg, #ff7fb0, #e8447f); color: #fff;
  font-size: 14px; font-weight: 600; font-family: inherit; cursor: pointer;
}
.mt-dl:hover { filter: brightness(1.05); }
.oi-thumb .dl-chk { position: absolute; top: 6px; left: 6px; width: 17px; height: 17px; z-index: 2; accent-color: var(--brand); }
.oi-thumb { position: relative; }
.oi-dl { position: absolute; bottom: 6px; right: 6px; background: rgba(40,20,30,.55); color: #fff; font-size: 11.5px; padding: 2px 8px; border-radius: 5px; text-decoration: none; z-index: 2; }
.oi-dl:hover { background: var(--brand); }

@media (max-width: 860px) {
  #authArea { gap: 5px; }
  #authArea .btn-ghost { height: 34px; padding: 0 10px; font-size: 13.5px; }
  #authArea .btn-primary { height: 34px; padding: 0 14px; font-size: 13.5px; }
}

/* ==================================================================
   v19 · 购买模块精修
   ================================================================== */
.buy-panel { border-radius: 18px; }
.bp-head {
  padding: 15px 22px;
  background: linear-gradient(90deg, #fff2f8, #fffdfe);
}
.bp-title { font-size: 16px; }
.bp-rows { padding: 20px 22px 22px; gap: 18px; }
.bp-row > label { flex: 0 0 70px; font-weight: 600; color: #7a6b73; }
.bp-side { padding: 20px 22px; gap: 11px; background: linear-gradient(180deg, #fffbfd, #fff7fb); }
.bp-line { font-size: 13.5px; }
.bp-total b { font-size: 28px; }
.bp-next { height: 46px; font-size: 16px; margin-top: 8px; }
.bp-note { margin-top: 2px; }

/* ==================================================================
   v19 · 演示图说明 + 固定人脸形象卡
   ================================================================== */
.demo-intro {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; flex-wrap: wrap;
  margin: 2px 0 18px; padding: 14px 18px;
  background: linear-gradient(90deg, #fff4f9, #fffdfe);
  border: 1px solid rgba(232, 68, 127, .14);
  border-radius: 12px;
}
.demo-intro p { font-size: 13.5px; line-height: 1.6; color: #7a5563; }
.demo-intro p b { color: var(--brand); font-weight: 700; }
.demo-intro span { font-size: 12.5px; color: var(--muted); white-space: nowrap; }

.person-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
@media (max-width: 1100px) { .person-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px)  { .person-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; } }

.person-demo-card {
  margin: 0; background: #fff; border-radius: 14px; overflow: hidden;
  cursor: pointer; box-shadow: 0 4px 16px rgba(200, 140, 170, .14);
  transition: transform .2s ease, box-shadow .2s ease;
}
.person-demo-card:hover { transform: translateY(-3px); box-shadow: 0 12px 26px rgba(200, 120, 155, .24); }
.pdc-cover { position: relative; aspect-ratio: 3 / 4; overflow: hidden; background: #f7eef3; }
.pdc-cover img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.person-demo-card:hover .pdc-cover img { transform: scale(1.05); }
.pdc-count {
  position: absolute; top: 10px; right: 10px;
  background: rgba(0, 0, 0, .52); color: #fff;
  font-size: 12px; padding: 3px 9px; border-radius: 6px;
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
}
.pdc-body { padding: 12px 14px 14px; }
.pdc-body b { font-size: 15px; color: var(--ink); }
.pdc-body span { display: block; font-size: 12px; color: var(--muted); margin-top: 3px; }

/* ==================================================================
   v19 · 登录 / 注册（重做）
   ================================================================== */
.auth-card { width: min(400px, 92vw); padding: 26px 24px 24px; }
.auth-brand { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.auth-logo {
  width: 44px; height: 44px; border-radius: 13px; flex: 0 0 auto;
  background: #fff; display: grid; place-items: center; overflow: hidden;
  box-shadow: 0 6px 16px rgba(232, 68, 127, .22);
}
.auth-logo img { width: 100%; height: 100%; object-fit: contain; display: block; }
.auth-brand b { display: block; font-size: 16px; color: var(--ink); }
.auth-brand span { display: block; font-size: 12.5px; color: var(--muted); margin-top: 2px; }

.auth-tabs {
  display: flex; gap: 4px; padding: 4px; margin-bottom: 18px;
  background: #f6eef2; border-radius: 12px;
}
.atab {
  flex: 1; height: 40px; border: none; border-radius: 9px;
  background: none; color: #8a6a78;
  font-size: 14.5px; font-family: inherit; cursor: pointer;
  transition: background .15s ease, color .15s ease, box-shadow .15s ease;
}
.atab.active {
  background: #fff; color: var(--brand); font-weight: 700;
  box-shadow: 0 2px 8px rgba(200, 140, 170, .22);
}

.auth-switch { display: flex; gap: 20px; margin-bottom: 16px; border-bottom: 1px solid var(--line); }
.asw {
  position: relative; padding: 8px 2px; border: none; background: none;
  font-family: inherit; font-size: 14px; color: #a08b95; cursor: pointer;
}
.asw.active { color: var(--brand); font-weight: 600; }
.asw.active::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -1px;
  height: 2px; border-radius: 2px; background: var(--brand);
}

.auth-form { display: flex; flex-direction: column; gap: 12px; }
.inp {
  width: 100%; height: 46px; border: 1px solid #efe1e8; border-radius: 5px;
  padding: 0 14px; font-size: 15px; font-family: inherit; outline: none;
  background: #fcf8fa; color: var(--ink);
  transition: border-color .15s, background .15s, box-shadow .15s;
}
.inp::placeholder { color: #b9a7b1; }
.inp:focus { border-color: var(--brand); background: #fff; box-shadow: 0 0 0 3px rgba(232, 68, 127, .10); }
.pwd-tip { font-size: 11.5px; color: #b7a3ad; line-height: 1.5; margin: 9px 0 4px; }
.code-row { display: flex; gap: 8px; }
.code-row .inp { flex: 1; }
.code-btn {
  flex: 0 0 auto; padding: 0 14px; height: 46px; border-radius: 5px;
  border: 1px solid var(--brand); background: #fff; color: var(--brand);
  font-size: 13.5px; font-family: inherit; cursor: pointer; white-space: nowrap;
}
.code-btn:disabled { color: #b9a3ad; border-color: #ecd6e1; cursor: not-allowed; }
.auth-msg { color: var(--brand); font-size: 13px; min-height: 16px; margin: 0; text-align: center; }

/* ==================================================================
   v19 · 退出确认弹窗
   ================================================================== */
.logout-card { width: min(340px, 90vw); text-align: center; padding: 26px 22px 22px; }
.lg-ico { margin-bottom: 8px; color: #e8447f; }
.lg-ico svg { width: 46px; height: 46px; display: block; margin: 0 auto; }
.logout-card h3 { font-size: 17px; }
.logout-card p { font-size: 13.5px; color: var(--muted); margin: 8px 0 20px; }
.lg-actions { display: flex; gap: 10px; }
.lg-cancel, .lg-ok {
  flex: 1; height: 44px; border: none; border-radius: 5px;
  font-size: 15px; font-family: inherit; cursor: pointer;
}
.lg-cancel { background: #f5eef2; color: #7a6b73; }
.lg-cancel:hover { background: #efe4ea; }
.lg-ok {
  background: linear-gradient(90deg, #ff7fb0, #e8447f); color: #fff; font-weight: 700;
  box-shadow: 0 6px 16px rgba(232, 68, 127, .3);
}
.lg-ok:active { transform: translateY(1px); }

/* ==================================================================
   v19 · 用户中心
   ================================================================== */
.center-head { display: flex; align-items: center; gap: 14px; margin: 2px 0 18px; }
.center-head h1 { font-size: 19px; font-weight: 700; color: var(--ink); }

.center-card {
  background: #fff; border-radius: 16px; padding: 20px 22px;
  box-shadow: 0 6px 20px rgba(200, 140, 170, .14);
  margin-bottom: 18px;
}
.cc-profile { display: flex; align-items: center; gap: 14px; }
.cc-avatar {
  width: 54px; height: 54px; border-radius: 50%; flex: 0 0 auto;
  background: linear-gradient(135deg, #ff8ab8, #e8447f);
  color: #fff; display: grid; place-items: center;
  font-size: 21px; font-weight: 800;
  box-shadow: 0 6px 16px rgba(232, 68, 127, .26);
}
.cc-avatar img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; display: block; }
/* 头像更换：外层按钮 + 右下角相机角标 */
.cc-avatar-wrap {
  position: relative; flex: 0 0 auto; padding: 0; border: 0; background: none;
  border-radius: 50%; cursor: pointer; line-height: 0;
}
.cc-avatar-wrap:active .cc-avatar { transform: scale(.94); }
.cc-avatar-wrap.uploading { opacity: .6; pointer-events: none; }
.cc-cam {
  position: absolute; right: -2px; bottom: 0; width: 20px; height: 20px;
  border-radius: 50%; background: linear-gradient(135deg, #ff8ab8, var(--brand));
  border: 2px solid #fff; color: #fff; z-index: 2;
  display: grid; place-items: center;
  box-shadow: 0 2px 6px rgba(232, 68, 127, .35);
  transition: transform .15s;
}
.cc-avatar-wrap:hover .cc-cam { transform: scale(1.12); }
.cc-cam svg { width: 10px; height: 10px; }
.cc-id { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.cc-id b { font-size: 17px; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cc-id span { font-size: 13px; color: var(--muted); }

/* 昵称 + 「修改昵称」小图标 */
.cc-name-row { display: flex; align-items: center; gap: 4px; min-width: 0; }
.cc-name-row b { min-width: 0; flex: 0 1 auto; }
.nick-edit {
  flex: 0 0 auto; width: 30px; height: 30px; margin: -4px 0 -4px -4px; padding: 0;
  border: 0; background: transparent; border-radius: 50%;
  display: grid; place-items: center; cursor: pointer;
  color: var(--brand); opacity: .62;
  -webkit-tap-highlight-color: transparent;
  transition: background .18s, opacity .18s, transform .12s;
}
.nick-edit svg { width: 15px; height: 15px; display: block; }
.nick-edit:hover { opacity: 1; background: #fde8f0; }
.nick-edit:active { transform: scale(.9); opacity: 1; }
.nick-edit:focus-visible { outline: 2px solid rgba(232, 68, 127, .5); outline-offset: 1px; }

/* 修改昵称弹窗 */
.nick-card { width: min(360px, 90vw); }
.nick-card h3 { margin-bottom: 6px; }
.nick-sub { font-size: 12.5px; line-height: 1.65; color: var(--muted); margin-bottom: 14px; }
.nick-card .inp { margin-bottom: 2px; }
.nick-card .auth-msg { min-height: 18px; margin-bottom: 8px; }
.nick-card .lg-actions { margin-top: 2px; }
@media (max-width: 420px) {
  .cc-name-row b { font-size: 16px; }
}
.cc-logout {
  margin-left: auto; flex: 0 0 auto; height: 36px;
  border: 1px solid #f2e2ea; border-radius: 5px; color: #8a7a82;
}
.cc-logout:hover { color: var(--brand); border-color: var(--brand-2); }

.cc-balance {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; margin-top: 16px; padding: 15px 18px;
  border-radius: 13px;
  background: linear-gradient(120deg, #fff1f8, #fff9fc);
  border: 1px solid rgba(232, 68, 127, .12);
}
.cc-balance p { font-size: 12.5px; color: #8a7a82; }
.cc-balance b { font-size: 26px; font-weight: 800; color: var(--brand); line-height: 1.25; }
.cc-balance b span { font-size: 26px; }

/* 可用余额 / 可提余额 双模块 */
.cc-balance-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 16px; }
.cc-balance-row .cc-balance { margin-top: 0; }
.cc-balance.cc-earn { background: linear-gradient(120deg, #fff8ef, #fffdf8); border-color: rgba(216, 146, 62, .16); }
.cc-balance.cc-earn b { color: #d8832e; }

/* 提现弹窗 */
.wd-bindwarn { font-size: 13.5px; color: #8a6134; background: #fffaf1; border: 1px solid #ffe4bd; border-radius: 12px; padding: 14px 16px; line-height: 1.8; }
.wd-bindgo { display: inline-block; margin-top: 8px; background: var(--brand); color: #fff; text-decoration: none; border-radius: 5px; padding: 7px 18px; font-size: 13px; font-weight: 700; }
.wd-notes { margin: 12px 0 2px; padding-left: 19px; font-size: 12.5px; color: #a98aa0; line-height: 1.95; text-align: left; }
@media (max-width: 620px) {
  .cc-balance-row { grid-template-columns: 1fr; }
  .cc-balance b, .cc-balance b span { font-size: 23px; }
}

.center-tabs {
  display: flex; gap: 6px; padding: 6px; margin-bottom: 16px;
  background: #fff; border-radius: 12px;
  box-shadow: 0 4px 14px rgba(200, 140, 170, .12);
}
.ctab {
  flex: 1; height: 40px; border: none; border-radius: 8px;
  background: none; color: #8a7a82;
  font-size: 14.5px; font-family: inherit; cursor: pointer;
  transition: background .15s, color .15s, box-shadow .15s;
}
.ctab.active {
  background: linear-gradient(90deg, #ff7fb0, #e8447f); color: #fff; font-weight: 600;
  box-shadow: 0 4px 12px rgba(232, 68, 127, .26);
}

.center-pane { min-height: 80px; }
.pane-loading, .pane-empty {
  text-align: center; color: var(--muted); font-size: 14px;
  padding: 46px 16px; background: #fff; border-radius: 14px;
  box-shadow: 0 4px 16px rgba(200, 140, 170, .12);
}
.pane-empty a { color: var(--brand); font-weight: 600; }

.rec-item {
  display: flex; align-items: center; justify-content: space-between;
  gap: 14px; flex-wrap: wrap;
  background: #fff; border-radius: 13px; padding: 15px 18px; margin-bottom: 10px;
  box-shadow: 0 4px 14px rgba(200, 140, 170, .12);
}
.rec-main { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.rec-title { font-size: 14.5px; font-weight: 700; color: var(--ink); }
.rec-sub { font-size: 12.5px; color: #8a7a82; }
.rec-meta { font-size: 11.5px; color: #b7a3ad; }
.rec-amt { text-align: right; flex: 0 0 auto; }
.rec-amt span { display: block; font-size: 11.5px; color: var(--muted); }
.rec-amt b { font-size: 18px; font-weight: 800; color: var(--brand); }
.rec-amt .rec-go { display: block; margin-top: 4px; font-size: 17px; line-height: 1; font-style: normal; color: var(--brand); opacity: .55; text-align: right; }
.rec-link:hover .rec-go { opacity: 1; }
/* 可点击的消费记录（跳转我购买的 / 创作者相册） */
.rec-link { cursor: pointer; transition: box-shadow .15s, transform .15s, border-color .15s; }
.rec-link:hover { box-shadow: 0 8px 22px rgba(232, 68, 127, .18); transform: translateY(-1px); }
.rec-link:active { transform: translateY(0); }
.rec-link:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
/* 消费记录：创作者头像簇（2026-11-13）：通用标题 + 头像代替昵称，点头像进创作者相册 */
.rec-item > .rec-main { flex: 1 1 0; }
.rec-avatars { display: flex; align-items: center; flex: 0 0 auto; }
.rec-av {
  display: block; width: 40px; height: 40px; border-radius: 50%;
  overflow: hidden; background: #f3e7ec; border: 2px solid #fff;
  box-shadow: 0 1px 4px rgba(200, 140, 170, .28); margin-left: -8px;
  text-decoration: none; transition: transform .15s, box-shadow .15s; position: relative; z-index: 1;
}
.rec-av:first-child { margin-left: 0; }
.rec-av:hover { transform: translateY(-2px) scale(1.06); box-shadow: 0 4px 12px rgba(232, 68, 127, .38); z-index: 3; }
.rec-av img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rec-av-init {
  display: flex; align-items: center; justify-content: center;
  width: 100%; height: 100%; font-size: 16px; font-weight: 700; color: #e8447f;
  background: linear-gradient(135deg, #ffe3ee, #ffd0e2);
}
.st-paid, .st-wait {
  display: inline-block; font-size: 11px; font-weight: 600;
  padding: 1px 8px; border-radius: 6px; margin-left: 6px; vertical-align: 1px;
}
.st-paid { color: #1a8f5a; background: #e8f8f0; }
.st-wait { color: #c07a15; background: #fdf3e3; }

.set-block {
  background: #fff; border-radius: 14px; padding: 18px 20px; margin-bottom: 14px;
  box-shadow: 0 4px 16px rgba(200, 140, 170, .12);
}
.set-block h3 { font-size: 15px; color: var(--ink); margin-bottom: 12px; }
.set-block .inp { margin-bottom: 10px; }
/* 仅当输入框是整块最后一个元素时才去掉底部间距；
   原写法 `:last-of-type` 会把「支付宝账号」也当成最后一个 input，
   导致紧跟其后的「短信验证码」行被顶到零间距（2026-11-11 修复） */
.set-block > .inp:last-child { margin-bottom: 0; }
.set-block .code-row { margin-bottom: 10px; }
.set-block .code-row .inp { margin-bottom: 0; }
.set-row { display: flex; gap: 10px; }
.set-row .inp { flex: 1; margin-bottom: 0; }
.set-btn {
  width: auto; flex: 0 0 auto; margin-top: 12px; padding: 0 24px; height: 46px;
}
.set-row .set-btn { margin-top: 0; height: 46px; }
.set-logout {
  width: 100%; justify-content: center; height: 46px;
  border: 1px solid #f0d0df; border-radius: 10px;
}
.set-logout:hover { color: var(--brand); border-color: var(--brand-2); background: #fff7fb; }

/* 账号设置-绑定支付宝：已绑定提示 */
.ali-bound { font-size: 13px; color: #1f7a36; background: #eaf7ee; border: 1px solid #cfe9d6; border-radius: 10px; padding: 10px 12px; margin-bottom: 10px; }
.ali-bound b { color: #1f7a36; font-weight: 600; }

/* 已实名后：支付宝姓名锁定显示（不可修改，仅账号可改） */
.ali-locked {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  background: #f6f7f9; border: 1px solid #e6e8eb; border-radius: 10px;
  padding: 11px 13px; margin-bottom: 10px; font-size: 14px; color: var(--ink);
}
.ali-lk-ic { font-size: 14px; opacity: .8; }
.ali-lk-main { font-weight: 500; }
.ali-lk-main b { color: var(--brand); font-weight: 700; }
.ali-lk-tip { margin-left: auto; font-size: 12px; color: #9aa1ab; }
@media (max-width: 480px) {
  .ali-locked { gap: 6px; }
  .ali-lk-tip { margin-left: 0; width: 100%; }
}

.user-btn { max-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* 账号设置-实名认证 + 支付宝绑定前置 */
.rn-box { margin-bottom: 2px; }
.rn-verified {
  display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600;
  color: #1f7a36; background: #eaf7ee; border: 1px solid #cfe9d6;
  border-radius: 10px; padding: 9px 13px; margin-bottom: 8px;
}
.rn-ic {
  display: inline-flex; align-items: center; justify-content: center;
  width: 18px; height: 18px; border-radius: 50%; background: #1f7a36; color: #fff;
  font-size: 12px; line-height: 1;
}
.rn-info { font-size: 13px; color: var(--ink); margin-bottom: 4px; }
.rn-form .inp { margin-bottom: 10px; }
/* 实名认证弹窗：错误提示做成醒目告警条（仅在有内容时显示，空时不占位） */
.rn-form .auth-msg { text-align: left; }
.rn-form .rn-msg:not(:empty) { margin-top: -3px; margin-bottom: 10px; padding: 8px 10px; }
.rn-form .auth-msg:empty { min-height: 0; margin: 0; padding: 0; border: 0; }
.rn-form .auth-msg:not(:empty) {
  display: flex; align-items: flex-start; gap: 7px;
  margin-top: 12px; padding: 10px 12px;
  font-size: 13px; font-weight: 500; line-height: 1.5;
  color: #c0244d; background: #fdeef3;
  border: 1px solid #f6c3d5; border-radius: 9px;
}
.rn-form .auth-msg:not(:empty)::before {
  content: "!";
  flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  width: 17px; height: 17px; margin-top: 1px;
  border-radius: 50%; background: #e8467c; color: #fff;
  font-size: 11px; font-weight: 800; line-height: 1;
}
.ali-gate {
  font-size: 13px; color: #9a6a2a; background: #fff6e6; border: 1px solid #f0dca8;
  border-radius: 10px; padding: 12px 14px; line-height: 1.5;
}
.set-block .inp[readonly] {
  background: #f4f5f7; color: #6b7280; cursor: not-allowed; border-color: #e6e8eb;
}
.set-block .inp[readonly]:focus { box-shadow: none; }

/* ==================================================================
   v19 · 手机端微调
   ================================================================== */
@media (max-width: 860px) {
  .auth-card { width: 92vw; padding: 22px 18px 20px; }
  .auth-brand b { font-size: 15px; }
  .inp, .code-btn { height: 44px; }
  .bp-head { padding: 12px 14px; }
  .bp-rows { padding: 16px 14px 18px; gap: 16px; }
  .bp-row > label { flex-basis: auto; }
  .bp-side { padding: 16px 14px; }
  .bp-total b { font-size: 25px; }
  .bp-next { height: 44px; font-size: 15.5px; }
  .center-card { padding: 16px; }
  .cc-balance b, .cc-balance b span { font-size: 23px; }
  .center-tabs { gap: 4px; padding: 5px; }
  .ctab { height: 38px; font-size: 13.5px; }
  .rec-item { padding: 13px 14px; }
  .rec-av { width: 34px; height: 34px; margin-left: -7px; }
  .rec-av-init { font-size: 14px; }
  .set-block { padding: 16px 14px; }
  .user-btn { max-width: 96px; }
  .person-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .pdc-body { padding: 10px 11px 12px; }
  .pdc-body b { font-size: 14px; }
}
@media (max-width: 420px) {
  .auth-tabs .atab { font-size: 14px; }
  .cc-logout { height: 32px; padding: 0 10px; font-size: 13px; }
}

/* v20：购买张数下方的「类型说明」模块 */
.type-note {
  margin-top: 2px;
  padding: 12px 14px;
  font-size: 12.5px;
  line-height: 1.72;
  color: #8a6b78;
  background: linear-gradient(90deg, #fff5fa, #fffdfe);
  border: 1px solid rgba(232, 68, 127, .16);
  border-left: 3px solid var(--brand);
  border-radius: 10px;
}
.type-note b { color: var(--brand); font-weight: 700; }
@media (max-width: 860px) {
  .type-note { font-size: 12px; line-height: 1.7; padding: 11px 12px; }
}

/* 优惠说明横幅（动态生成，置于随机形象说明上方） */
.promo-note {
  margin-top: 2px;
  padding: 11px 14px;
  font-size: 12.5px;
  line-height: 1.7;
  color: #fff;
  background: linear-gradient(90deg, var(--brand), #ff7eb3);
  border-radius: 10px;
  box-shadow: 0 4px 14px rgba(232, 68, 127, .18);
}
.promo-note b { color: #fff; font-weight: 800; }
@media (max-width: 860px) {
  .promo-note { font-size: 12px; padding: 10px 12px; }
}

/* ================= 翻页器（我的图片，美化，与后台风格统一） ================= */
.mine-pager { display: flex; justify-content: center; padding: 20px 0 6px; }
.pager { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; justify-content: center; }
.pg-info { color: #8a7a82; font-size: 13px; margin-right: 8px; white-space: nowrap; }
.pg-btn {
  min-width: 34px; height: 34px; padding: 0 10px;
  border: 1px solid #f1c9da; background: #fff; color: #c0346a;
  border-radius: 5px; font-size: 13px; cursor: pointer; font-family: inherit;
  transition: background .15s, color .15s, border-color .15s, transform .1s;
}
.pg-btn:hover:not(.disabled):not(.active) { background: #fff0f6; border-color: var(--brand); }
.pg-btn:active:not(.disabled):not(.active) { transform: translateY(1px); }
.pg-btn.active { background: linear-gradient(90deg, #ff7fb0, var(--brand)); color: #fff; border-color: transparent; font-weight: 700; box-shadow: 0 4px 12px rgba(232,68,127,.28); cursor: default; }
.pg-btn.disabled { color: #cbb6bf; border-color: #f3e3ea; background: #faf6f8; cursor: not-allowed; }

/* ================= 创作者中心入口（顶栏） ================= */
/* 创作者中心：账号区最右侧主按钮 */
.nav-creator{
  display:inline-flex;align-items:center;gap:6px;
  height:36px;padding:0 16px;border-radius: 5px;
  background:linear-gradient(135deg,var(--brand-2),var(--brand));
  color:#fff;font-size:14px;font-weight:700;text-decoration:none;white-space:nowrap;
  box-shadow:0 6px 16px rgba(232,68,127,.28);
  transition:filter .15s, transform .15s, box-shadow .15s;
}
.nav-creator svg{width:16px;height:16px;flex:none;opacity:.95}
/* 短文案「创作者」仅手机端启用（首页顶栏专用） */
.nav-cr-main .nc-short{display:none}
.nav-creator:hover{color:#fff;filter:brightness(1.04);transform:translateY(-1px);box-shadow:0 9px 20px rgba(232,68,127,.34)}
.nav-creator:active{transform:translateY(0)}

/* 账号区响应式：顶部分类导航下线后，账号区独占右侧，逐级收窄不换行 */
@media (max-width:1180px){
  .header-actions{gap:6px}
  .acct-btn{padding:0 11px;font-size:13.5px}
  .acct-btn .ab-lb{max-width:76px}
  .nav-creator{padding:0 13px;font-size:13.5px}
}
@media (max-width:1024px){
  .bal-badge .bb-lb{display:none}
  .acct-btn.user-btn .ab-lb{max-width:64px}
}
@media (max-width:860px){
  .header-actions{gap:6px}
  .bal-badge{height:34px;padding:0 10px;gap:5px}
  .bal-badge svg{width:15px;height:15px}
  .bal-badge b{font-size:13.5px}
  .acct-btn{height:34px;padding:0 9px}
  .acct-btn .ab-lb{display:none}
  /* 「我的」入口：手机端不再只显示头像，直接显示文字「我的」，方便识别（2026-11-11） */
  .acct-btn.user-btn .ab-av{display:none}
  .acct-btn.user-btn .ab-lb{display:inline}
  .acct-btn .ab-av{width:24px;height:24px;font-size:12.5px}
  .nav-creator{height:34px;padding:0 12px;font-size:13px}
  .nav-creator svg{width:15px;height:15px}
}
@media (max-width:620px){
  .header-actions{gap:5px}
  .bal-badge{height:32px;padding:0 9px;gap:4px}
  .bal-badge svg{width:14px;height:14px}
  .bal-badge b{font-size:13px}
  .acct-btn{height:32px;padding:0 8px}
  .acct-btn svg{width:16px;height:16px}
  .acct-btn .ab-av{width:22px;height:22px;font-size:12px}
  .nav-creator{height:32px;padding:0 10px}
  .nav-creator .nc-txt{display:none}
  .nav-creator svg{width:17px;height:17px}
  /* 首页「创作者」入口：手机端弃用星星图标，直接显示文字按钮，避免用户认不出是创作者中心 */
  .nav-cr-main{gap:0;padding:0 11px;font-size:12.5px;letter-spacing:.2px}
  .nav-cr-main svg{display:none}
  .nav-cr-main .nc-full{display:none}
  .nav-cr-main .nc-short{display:inline}
}
/* 小屏手机（360~400）：进一步压缩，保证 5 个入口全在屏内 */
@media (max-width:400px){
  .header-inner{padding:0 12px;gap:8px}
  .logo-img{height:32px;max-width:132px}
  .header-actions{gap:4px}
  .bal-badge{height:30px;padding:0 7px;gap:3px}
  .bal-badge svg{width:13px;height:13px}
  .bal-badge b{font-size:12.5px;letter-spacing:0}
  .acct-btn{height:30px;padding:0 7px}
  .acct-btn svg{width:15px;height:15px}
  .acct-btn .ab-av{width:20px;height:20px;font-size:11.5px}
  .nav-creator{height:30px;padding:0 9px}
  .nav-creator svg{width:16px;height:16px}
  .nav-cr-main{padding:0 9px;font-size:12px}
}

/* ===== 创作者演示图（已合并进瀑布流，卡片右下角显示昵称入口） ===== */
.more-nick{position:absolute;right:8px;top:8px;max-width:82%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:rgba(232,68,127,.9);color:#fff;font-size:12px;font-weight:600;padding:3px 9px;border-radius:20px;text-decoration:none;line-height:1.5;z-index:2;box-shadow:0 2px 8px rgba(200,60,110,.28)}
.more-nick:hover{background:#e8447f}
@media (max-width:760px){ .more-nick{font-size:11px;padding:2px 8px;right:6px;top:6px} }
/* 创作中心「我的购买」卡片底部按钮 */
.ud-enter{display:block;text-align:center;padding:9px 8px;color:var(--brand);font-size:13px;font-weight:600;text-decoration:none;border-top:1px solid #f6e7ee}
.ud-enter:hover{background:#fff4f8}

/* ============ 首页选购·创作者出售图瀑布流 feed ============ */
.feed-toolbar{display:flex;align-items:center;gap:10px;margin:6px 0 16px;flex-wrap:wrap}
.feed-search{flex:1 1 240px;min-width:0;display:flex;gap:10px;align-items:center}
.feed-search input:focus{border-color:var(--brand-2)}
.feed-search input{flex:1 1 auto;min-width:0;border:1.5px solid #f0d7e3;outline:none;background:#fff;border-radius:5px;height:40px;padding:0 12px 0 16px;font-size:14px;color:#5b3a48;font-family:inherit;box-shadow:0 4px 14px rgba(220,120,160,.06);transition:border-color .15s}
.feed-search input::placeholder{color:#b89aa8}
.feed-search button{flex:0 0 auto;border:none;background:linear-gradient(90deg,var(--brand-2),var(--brand));color:#fff;font-size:14px;font-weight:700;padding:0 22px;height:40px;border-radius: 5px;cursor:pointer;transition:filter .15s}
.feed-search button:active{filter:brightness(.95)}
.feed-shuffle{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;height:50px;padding:0 18px;border:1.5px solid rgba(232,68,127,.45);background:#fff;color:var(--brand);border-radius: 5px;font-size:14px;font-weight:700;cursor:pointer;transition:all .15s;white-space:nowrap}
.feed-shuffle svg{width:17px;height:17px;flex:none}
.feed-shuffle:hover{background:#fff5fa;border-color:var(--brand);box-shadow:0 4px 12px rgba(200,60,110,.16)}
.feed-shuffle:active{transform:scale(.97)}

/* 首页 feed：改为「整行填满」拼贴（2026-11-08）——每行 3/4 张交替，行内按原图比例分配宽度，
   图片始终无缝相接（横竖都 0 间隙）、原比例不裁剪，行高上下浮动形成大小错落的杂志感 */
.feed-masonry{display:block;margin-top:4px}
.feed-row{display:flex;gap:0;align-items:stretch;width:100%}
.feed-masonry .feed-card{margin:0;position:relative;overflow:hidden;border:0;cursor:pointer;border-radius:0;background:#f3eef1;flex:0 1 0;min-width:0;height:100%;transition:filter .15s}
.feed-masonry .feed-card img{width:100%;height:100%;display:block;object-fit:cover;cursor:pointer;border-radius:0}
.feed-masonry .feed-card:hover{filter:brightness(.96);cursor:pointer}
.feed-masonry .feed-card.sel{outline:2px solid var(--brand);outline-offset:-2px}
.feed-masonry .feed-card.sel img{filter:brightness(.9)}
.price-tag{position:absolute;left:8px;bottom:8px;background:rgba(32,32,32,.82);color:#fff;font-size:11px;font-weight:400;padding:3px 8px;border-radius:6px;box-shadow:0 2px 6px rgba(0,0,0,.25);z-index:2;white-space:nowrap;backdrop-filter:blur(2px)}
/* 左上角「未售」小标：绿底白字、非粗体、小尺寸 */
.unsold-tag{position:absolute;left:8px;top:8px;background:rgba(38,166,91,.92);color:#fff;font-size:10px;font-weight:400;padding:2px 7px;border-radius:5px;z-index:2;white-space:nowrap;letter-spacing:1px;box-shadow:0 2px 5px rgba(38,166,91,.30)}
/* 自己上传的图片：展示但不可购买，右下角标「我的」 */
.own-badge{position:absolute;right:8px;bottom:8px;background:rgba(232,68,127,.92);color:#fff;font-size:12px;font-weight:700;padding:3px 9px;border-radius:14px;z-index:2;white-space:nowrap;box-shadow:0 2px 6px rgba(232,68,127,.35)}
.feed-masonry .feed-card.own{cursor:default}
.feed-masonry .feed-card.own:hover{filter:none}
.pick-tick{position:absolute;left:8px;bottom:8px;width:22px;height:22px;border-radius:5px;background:rgba(255,255,255,.92);border:2px solid #d9b6c6;color:transparent;display:flex;align-items:center;justify-content:center;font-size:13px;line-height:1;z-index:3;transition:all .15s;cursor:pointer}
/* 2026-11-10：勾选方块移到左下角、位于价格前面；选中后正方形内显示对勾（☑️） */
.feed-masonry .feed-card.sel .pick-tick{background:var(--brand);border-color:var(--brand);color:#fff}
.feed-masonry .feed-card .price-tag{left:38px}
.feed-masonry .feed-card.own .price-tag,
.feed-masonry .feed-card.showcase .price-tag{left:8px}
/* 窄卡防重叠：左上角已改为小号「未售」标，右上角相册入口可放宽显示更多昵称 */
.feed-masonry .more-nick{max-width:calc(100% - 56px)}
@media (max-width:400px){.feed-masonry .more-nick{max-width:calc(100% - 48px)}}

/* 已选购买栏（移动端底部悬浮，适配安全区） */
.feed-bar{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(14px + env(safe-area-inset-bottom));z-index:60;width:min(560px,calc(100% - 24px));display:flex;align-items:center;gap:14px;background:#fff;border:1px solid #f0d9e3;box-shadow:0 -4px 20px rgba(0,0,0,.10),0 8px 24px rgba(0,0,0,.10);border-radius:16px;padding:10px 14px}
.fb-info{flex:1 1 auto;min-width:0;font-size:13px;color:#7a6b73;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fb-info b{color:#5b3a48;font-size:15px;font-weight:800}
.fb-total{margin-left:10px;color:var(--brand);font-weight:700}
.fb-buy{flex:0 0 auto;min-width:120px;height:46px;border:none;border-radius: 5px;background:linear-gradient(90deg,var(--brand-2),var(--brand));color:#fff;font-size:15px;font-weight:800;cursor:pointer;transition:filter .15s}
.fb-buy:active{filter:brightness(.95)}

/* 返回顶部浮动按钮 */
.back-top{position:fixed;right:16px;bottom:calc(80px + env(safe-area-inset-bottom));z-index:55;width:44px;height:44px;border-radius:50%;border:none;background:rgba(255,255,255,.95);color:var(--brand);box-shadow:0 6px 18px rgba(200,60,110,.22);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s,box-shadow .15s,opacity .2s,visibility .2s}
/* 页脚进入视口时隐藏「回到顶部」，避免浮层压住版权/备案信息 */
body.foot-in-view .back-top{opacity:0;visibility:hidden;transform:translateY(10px);pointer-events:none}
.back-top svg{width:22px;height:22px}
.back-top:hover{box-shadow:0 8px 22px rgba(200,60,110,.30)}
.back-top:active{transform:scale(.94)}

@media (max-width:600px){
  .feed-search button{padding:0 16px}
  .feed-shuffle{padding:0 14px;height:46px}
  .fb-info{font-size:12px}
  .fb-buy{min-width:104px;font-size:14px;height:44px}
  .back-top{width:40px;height:40px;right:12px;bottom:calc(74px + env(safe-area-inset-bottom))}
}

/* ============ 整本相册售卖设置（创作中心 · 2026-11-07） ============ */
.ap-row{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap}
.ap-switch-wrap{display:flex;align-items:center;gap:10px;padding-bottom:6px}
.ap-switch{position:relative;display:inline-block;width:52px;height:28px;flex:0 0 auto}
.ap-switch input{opacity:0;width:0;height:0}
.ap-slider{position:absolute;cursor:pointer;inset:0;background:#e8d3de;border-radius:28px;transition:.25s}
.ap-slider:before{content:"";position:absolute;height:22px;width:22px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.25s;box-shadow:0 1px 4px rgba(150,60,100,.25)}
.ap-switch input:checked+.ap-slider{background:linear-gradient(135deg,#ff7eb3,#e8447f)}
.ap-switch input:checked+.ap-slider:before{transform:translateX(24px)}
.ap-state{font-size:14px;font-weight:600;color:#c2557f}
.ap-price-field{flex:1 1 220px;min-width:200px}
.ap-hint b{color:#e8447f}

/* ============ 首页搜索命中创作者入口（2026-11-07） ============ */
.feed-cr-hit{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:6px auto 14px;max-width:960px}
.fcr-chip{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid #f6d5e3;border-radius:24px;padding:7px 16px 7px 8px;text-decoration:none;box-shadow:0 2px 8px rgba(232,68,127,.08);transition:.15s}
.fcr-chip:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(232,68,127,.16)}
.fcr-chip.pay{background:linear-gradient(135deg,#fff0f6,#ffe4ef);border-color:#f3a9c8}
.fcr-av{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#ff9ec7,#e8447f);color:#fff;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center}
.fcr-nick{font-size:14px;font-weight:600;color:#3a2530}
.fcr-meta{font-size:12px;color:#c2557f}
.fcr-chip.pay .fcr-meta{color:#e8447f;font-weight:600}
/* 已到期创作者：搜索命中时显示为灰色"相册已到期"chip，点击弹提示（非链接） */
.fcr-chip.exp{cursor:pointer;border-color:#f0d9c2;background:#fff7ef;box-shadow:0 2px 8px rgba(180,120,40,.08)}
.fcr-chip.exp .fcr-av{background:linear-gradient(135deg,#f0b46a,#e08a2e)}
.fcr-chip.exp .fcr-meta{color:#c47a1e;font-weight:600}
.fcr-chip.exp:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(180,120,40,.16)}
.fcr-chip.exp:focus-visible{outline:2px solid #e08a2e;outline-offset:2px}

/* ============ 展示图管理（创作中心 · 2026-11-07） ============ */
.ap-shots{margin-top:16px;padding-top:14px;border-top:1px dashed #f3d0e0}
.aps-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.aps-title{font-size:14px;font-weight:600;color:#3a2530}
#apShotBtn{padding:8px 16px;font-size:13px}
#apShotBtn:disabled{opacity:.45;cursor:not-allowed}
.aps-grid{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.aps-item{position:relative;width:104px;border-radius:12px;overflow:hidden;border:1px solid #f6d5e3;background:#fff;box-shadow:0 2px 8px rgba(232,68,127,.1)}
.aps-item img{display:block;width:100%;height:104px;object-fit:cover;cursor:zoom-in}
.aps-item img:hover{opacity:.88}
.aps-del{position:absolute;top:4px;right:4px;width:22px;height:22px;border:none;border-radius:50%;background:rgba(40,40,46,.78);color:#fff;font-size:12px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.aps-del:hover{background:#e8447f}
.aps-mark{position:absolute;left:0;bottom:0;right:0;background:linear-gradient(0deg,rgba(232,68,127,.85),rgba(232,68,127,0));color:#fff;font-size:10.5px;padding:14px 6px 4px;text-align:center;pointer-events:none}
.aps-empty{font-size:12.5px;color:#b48ba0;background:#fdf3f8;border:1px dashed #f0bcd2;border-radius:10px;padding:12px 14px;margin-top:8px}
/* 大图预览弹窗 */
.shot-view{position:fixed;inset:0;background:rgba(30,16,24,.62);backdrop-filter:blur(3px);z-index:400;display:flex;align-items:center;justify-content:center;padding:20px}
.shot-view[hidden]{display:none}
.sv-card{background:#fff;border-radius:18px;padding:12px;max-width:min(86vw,720px);box-shadow:0 18px 48px rgba(120,30,70,.35);display:flex;flex-direction:column;gap:10px}
.sv-card img{max-width:100%;max-height:70vh;border-radius:10px;display:block}
.sv-close{border:none;background:linear-gradient(135deg,#ff7eb3,#e8447f);color:#fff;font-size:14px;font-weight:600;border-radius: 5px;padding:9px 28px;cursor:pointer;font-family:inherit}
.sv-close:hover{filter:brightness(1.06)}

/* ============ 首页 feed 展示图卡片（2026-11-07） ============ */
.feed-masonry .feed-card.showcase{cursor:pointer}
.feed-masonry .show-tag{background:linear-gradient(135deg,#ff7eb3,#e8447f);color:#fff;font-weight:600}

/* ============ 创作者会员状态卡（2026-11-07） ============ */
.mcard{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:linear-gradient(135deg,#fff6fb,#fff);border:1px solid #f7d9e6;border-radius:18px;padding:16px 18px;margin:0 0 18px;box-shadow:0 8px 22px rgba(220,120,160,.10)}
.mcard[hidden]{display:none}
.mc-left{display:flex;align-items:center;gap:12px;min-width:170px}
.mc-av{width:52px;height:52px;border-radius:50%;object-fit:cover;border:2px solid #f7d9e6;background:#f7eef3}
.mc-av.na{display:grid;place-items:center;color:#e8447f;background:linear-gradient(135deg,#ffe3ef,#ffd0e2);font-weight:800;font-size:20px}
.mc-id{min-width:0}
.mc-nick{font-size:14px;font-weight:700;color:#4a2b39;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc-tier{font-size:15px;font-weight:800;margin-top:2px;display:inline-flex;align-items:center;gap:5px}
/* 等级 LOGO 小图标（创作者中心 / 升级弹窗 / 文案内联，均用同一套真图标） */
.mc-tier-ico{width:18px;height:18px;object-fit:contain;display:block;flex:none;filter:drop-shadow(0 1px 2px rgba(0,0,0,.14))}
.tier-ico{width:18px;height:18px;object-fit:contain;display:block;flex:none}
.tier-inline{width:15px;height:15px;object-fit:contain;display:inline-block;vertical-align:-2px;margin:0 3px 0 1px}
.mc-mid{flex:1;min-width:200px;display:flex;flex-direction:column;gap:7px}
.mc-row{display:flex;align-items:baseline;gap:8px;font-size:13px;color:#7a5a68}
.mc-row span{color:#a98aa0;flex:none}
.mc-row b{color:#4a2b39;font-weight:700}
.mc-row em{font-style:normal;color:#c0397f;font-size:12px}
.mc-stor{display:flex;align-items:center;gap:8px;font-size:12px;color:#a98aa0}
.mc-stor-bar{flex:1;height:7px;border-radius:99px;background:#f3e3ea;overflow:hidden;min-width:90px}
.mc-stor-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#ff9ec4,#e8447f)}
.mc-act{display:flex;flex-direction:column;gap:8px;align-items:stretch;min-width:120px}
.mc-act .btn-rene{border:none;border-radius: 5px;height:40px;font-size:14px;font-weight:700;color:#fff;cursor:pointer;background:linear-gradient(135deg,#ff6fa5,#e8447f);box-shadow:0 6px 16px rgba(232,68,127,.28)}
.mc-act .btn-rene:active{transform:scale(.98)}
.mc-act .btn-upg{border:none;border-radius: 5px;height:40px;font-size:14px;font-weight:700;color:#fff;cursor:pointer;background:linear-gradient(135deg,#7b6cff,#5b4bdb);box-shadow:0 6px 16px rgba(91,75,219,.28)}
.mc-act .btn-upg:active{transform:scale(.98)}
.mc-link{display:flex;align-items:center;justify-content:center;gap:3px;border:1.5px solid #f3cede;border-radius: 5px;height:40px;font-size:14px;font-weight:700;color:var(--brand,#e8447f);background:#fff;text-decoration:none;white-space:nowrap;transition:border-color .15s,background .15s,transform .1s}
.mc-link:hover{border-color:var(--brand,#e8447f);background:#fff5fa}
.mc-link:active{transform:scale(.98)}
@media (max-width:560px){
  .mcard{flex-direction:column;align-items:stretch}
  .mc-left{justify-content:flex-start}
  .mc-act{flex-direction:row;flex-wrap:nowrap;min-width:0;gap:7px}
  .mc-act .btn-rene,.mc-act .btn-upg,.mc-act .mc-link{flex:1 1 0;min-width:0;height:38px;font-size:12.5px;padding:0;white-space:nowrap}
}
@media (max-width:360px){
  .mc-act .btn-rene,.mc-act .btn-upg,.mc-act .mc-link{height:36px;font-size:11.5px}
}
/* 升级弹窗内档位列表 */
.upg-list{display:flex;flex-direction:column;gap:10px;margin:6px 0 16px;text-align:left}
.upg-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid #ece0e8;border-radius:14px;background:#fff;transition:border-color .15s,box-shadow .15s}
.upg-item:hover{border-color:#cdbce0;box-shadow:0 6px 16px rgba(91,75,219,.12)}
.upg-sym{font-size:30px;line-height:1;flex:none;display:flex;align-items:center;justify-content:center;width:30px}
.upg-sym-ico{width:28px;height:28px;object-fit:contain;display:block}
.upg-info{flex:1;display:flex;flex-direction:column}
.upg-info b{font-size:15px;color:#4a2b39}
.upg-info span{font-size:12.5px;color:#9a6fb0;margin-top:2px}
.upg-go{border:none;border-radius: 5px;height:38px;padding:0 18px;font-size:13.5px;font-weight:700;color:#fff;cursor:pointer;background:linear-gradient(135deg,#7b6cff,#5b4bdb);box-shadow:0 5px 14px rgba(91,75,219,.26)}
.upg-go:active{transform:scale(.97)}

/* ============ 一级邀请推广（2026-11-07） ============ */
/* 邀请推广横幅（个人中心，余额卡片下方） */
.inv-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:12px;padding:14px 16px;border-radius:16px;background:linear-gradient(120deg,#ffe9f3,#ffdcec 55%,#fff3e9);border:1px solid rgba(232,68,127,.16);box-shadow:0 6px 18px rgba(220,120,160,.10)}
.invb-left{display:flex;align-items:center;gap:10px;min-width:0}
.invb-left svg{width:30px;height:30px;color:#e8447f;flex:none}
/* 兜底：无论外层类名怎么变，横幅内图标都锁 30px（曾出现过 svg 撑满整卡的问题） */
.inv-banner svg{width:30px;height:30px;flex:none}
.invb-txt b{display:block;font-size:14.5px;font-weight:800;color:#c2285f;letter-spacing:.5px}
.invb-txt p{margin:2px 0 0;font-size:12.5px;line-height:1.55;color:#8a5f70;max-width:560px}
.invb-txt em{font-style:normal;font-weight:800;color:#e8447f;padding:0 1px}
.invb-right{display:flex;align-items:center;gap:10px;flex:none}
.invb-code{font-size:12.5px;color:#8a5f70}
.invb-code b{display:inline-block;margin-left:4px;padding:4px 12px;border-radius:10px;background:#fff;border:1px dashed #f0a8c4;font-size:19px;font-weight:800;letter-spacing:3px;color:#e8447f}
.invb-copy{border:none;background:linear-gradient(135deg,#ff5c96,#e8447f);color:#fff;border-radius: 5px;height:34px;padding:0 20px;font-size:13.5px;font-weight:700;cursor:pointer;box-shadow:0 4px 12px rgba(232,68,127,.32);transition:transform .15s, box-shadow .15s}
.invb-copy:hover{box-shadow:0 6px 16px rgba(232,68,127,.42)}
.invb-copy:active{transform:scale(.94)}
@media (max-width:560px){
  .inv-banner{flex-direction:column;align-items:stretch}
  .invb-right{justify-content:space-between}
  .invb-txt p{max-width:none}
}
/* 奖励记录面板 */
.rw-head{display:flex;align-items:center;justify-content:space-between;gap:12px;background:linear-gradient(135deg,#fff5fa,#fff);border:1px solid #f7d9e6;border-radius:14px;padding:12px 16px;margin-bottom:12px}
.rw-sum{display:flex;align-items:baseline;gap:8px;font-size:13px;color:var(--muted,#a98aa0)}
.rw-sum b{font-size:20px;font-weight:800;color:#e8447f}
.rw-inv{width:auto;min-width:96px;height:38px;padding:0 16px}
.rec-title svg{width:15px;height:15px;vertical-align:-3px;color:#e8447f;margin-right:5px}
/* 我的邀请弹窗 */
.inv-card{width:min(560px,92vw)}
.inv-sub{margin:4px 0 14px;font-size:13px;color:var(--muted,#a98aa0)}
.inv-sub b{color:#e8447f;font-size:15px}
.inv-head,.inv-row{display:grid;grid-template-columns:1.3fr 1fr 1fr .7fr 1fr;gap:8px;align-items:center}
.inv-head{padding:0 4px 8px;font-size:12px;color:var(--muted,#a98aa0);border-bottom:1px solid #f3e3ea}
.inv-list{max-height:320px;overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding-top:6px}
.inv-row{padding:9px 4px;border-radius:10px;font-size:13px;color:#6a4a58}
.inv-row:nth-child(odd){background:#fff7fa}
.inv-nick{font-weight:700;color:#4a2b39}
.inv-time{font-size:12.5px;color:var(--muted,#a98aa0)}
.inv-yes,.inv-no{font-style:normal;font-size:11.5px;font-weight:700;border-radius:999px;padding:2px 8px}
.inv-yes{background:#eafaf0;color:#2e8b57}
.inv-no{background:#f4eef1;color:#b6a3ad}
.inv-qty{font-weight:700;color:#4a2b39}
.inv-qty em{font-style:normal;font-size:11px;color:var(--muted,#a98aa0);font-weight:400}
@media (max-width:560px){
  .inv-head,.inv-row{grid-template-columns:1.1fr .9fr .9fr .6fr .9fr;gap:5px;font-size:12px}
}

/* ============ 创作者中心 · 卖出记录（2026-11-09，紧凑版） ============ */
.sales-sum{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}
.sales-sum .ss-item{background:linear-gradient(135deg,#fff,#fff5fa);border:1px solid #f6e0ea;border-radius:10px;padding:8px 6px;text-align:center;box-shadow:0 3px 10px rgba(220,120,160,.07)}
.sales-sum .ss-item b{display:block;font-size:16px;font-weight:800;color:var(--brand,#e8447f);line-height:1.15}
.sales-sum .ss-item span{display:block;font-size:11px;color:#a98aa0;margin-top:2px}
.sales-card h3{margin:0 0 8px;font-size:15px}
.sales-table{display:flex;flex-direction:column;gap:8px}
.st-row{background:#fff;border:1px solid #f3e3ea;border-radius:10px;padding:9px 11px;box-shadow:0 2px 8px rgba(220,120,160,.05)}
.st-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;padding-bottom:6px;border-bottom:1px dashed #f0e2e9}
.st-no{font-size:12px;font-weight:700;color:#5a3a48;letter-spacing:.2px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.st-tag{font-size:11px;font-weight:700;border-radius:999px;padding:2px 8px;white-space:nowrap}
.st-tag.photo{background:#eaf4ff;color:#2f7fd6}
.st-tag.album{background:#f3ecff;color:#7c4dd6}
.st-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px}
.st-cell{display:flex;flex-direction:column;gap:2px;min-width:0}
.st-cell.st-time{grid-column:1 / -1}
.st-k{font-size:11px;color:#a98aa0}
.st-v{font-size:13px;color:#3c2b35;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-v.comm{color:var(--brand,#e8447f);font-weight:800}
/* 分页 */
.sales-pager{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:5px;margin-top:12px;padding-top:10px;border-top:1px solid #f3e3ea}
.sp-btn{border:1px solid #f0d9e3;background:#fff;color:#a14b6e;font-size:12px;font-weight:600;min-width:32px;height:30px;padding:0 9px;border-radius:7px;cursor:pointer;transition:background .15s,border-color .15s,color .15s,transform .12s;font-family:inherit}
.sp-btn:hover:not(.disabled){background:#fff6fa;border-color:#f7c3d8}
.sp-btn:active:not(.disabled){transform:scale(.95)}
.sp-btn.num.active{background:linear-gradient(135deg,var(--brand-2,#ff6fa5),var(--brand,#e8447f));border-color:transparent;color:#fff;box-shadow:0 4px 10px rgba(232,68,127,.30)}
.sp-btn.disabled{opacity:.4;cursor:not-allowed}
.sp-info{font-size:12px;color:#a98aa0;margin-left:4px}
@media (max-width:560px){
  .sales-sum{gap:6px}
  .sales-sum .ss-item{padding:7px 4px}
  .sales-sum .ss-item b{font-size:15px}
  .sales-sum .ss-item span{font-size:10px}
  .st-grid{gap:5px 10px}
  .sp-btn{min-width:30px;height:28px;padding:0 8px;font-size:11.5px}
  .sp-info{width:100%;text-align:center;margin:3px 0 0}
}
/* 头像违规重置提示弹窗（2026-11-09） */
.avban-card{ max-width:380px; text-align:center; padding:26px 24px 22px; }
.avban-ico{ width:58px; height:58px; border-radius:50%; margin:0 auto 12px; display:flex; align-items:center; justify-content:center; background:#fff0f5; color:#e8447f; }
.avban-ico svg{ width:30px; height:30px; }
.avban-card h3{ margin:0 0 10px; font-size:19px; color:#4a2b39; }
.avban-text{ margin:0 0 20px; color:#7a5b68; font-size:14.5px; line-height:1.6; }
.avban-actions{ display:flex; gap:10px; justify-content:center; }
.avban-btn{ flex:1; border:none; border-radius:10px; padding:11px 0; font-size:14.5px; font-weight:600; cursor:pointer; background:#e8447f; color:#fff; transition:.15s; font-family:inherit; }
.avban-btn:hover{ background:#d63b73; }
.avban-btn.ghost{ background:#f3e9ee; color:#8a6b78; }
.avban-btn.ghost:hover{ background:#ecdde4; }
@media (max-width:560px){
  .avban-card{ padding:22px 18px 18px; }
  .avban-text{ font-size:14px; }
  .avban-btn{ font-size:14px; padding:10px 0; }
}

/* ============ 右侧悬浮客服（2026-11-11） ============ */
.fs-wrap{ position:fixed; right:18px; top:50%; transform:translateY(-50%); z-index:90; display:flex; flex-direction:column; align-items:center; transition:opacity .22s ease, transform .22s ease, visibility .22s; }
/* 滚到页脚时收起客服浮窗，避免压住二维码/联系方式（页脚本身已有联系方式） */
body.foot-in-view .fs-wrap{ opacity:0; visibility:hidden; transform:translate(12px,-50%); pointer-events:none; }
.fs-btn{
  position:relative; width:58px; height:58px; padding:0; border:none; border-radius:50%;
  background:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 22px rgba(200,60,110,.26), 0 2px 6px rgba(200,60,110,.12);
  transition:transform .18s ease, box-shadow .18s ease;
}
.fs-btn:hover{ transform:translateY(-2px); box-shadow:0 12px 30px rgba(200,60,110,.34); }
.fs-btn:active{ transform:scale(.95); }
.fs-ico{
  width:42px; height:42px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,#ff7fae,#e8447f); box-shadow:0 4px 10px rgba(232,68,127,.35);
}
.fs-ico svg{ width:23px; height:23px; color:#fff; }
.fs-dot{
  position:absolute; top:3px; right:3px; width:11px; height:11px; border-radius:50%;
  background:#ff3d6e; border:2px solid #fff; box-sizing:content-box;
}

/* 悬浮面板 */
.fs-panel{
  position:absolute; right:72px; top:50%; width:340px; max-width:calc(100vw - 96px);
  padding:20px; background:#fff; border-radius:14px;
  box-shadow:0 16px 44px rgba(120,40,70,.20), 0 2px 8px rgba(120,40,70,.08);
  opacity:0; visibility:hidden; pointer-events:none;
  transform:translateY(-50%) translateX(8px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s;
}
.fs-panel.on{ opacity:1; visibility:visible; pointer-events:auto; transform:translateY(-50%) translateX(0); }
.fs-panel::after{
  content:''; position:absolute; right:-6px; top:50%; margin-top:-6px;
  width:12px; height:12px; background:#fff; border-radius:2px; transform:rotate(45deg);
}
.fs-sec-t{ display:flex; align-items:center; gap:7px; font-size:15px; font-weight:600; color:var(--ink); }
.fs-sec-t svg{ width:18px; height:18px; color:var(--brand); flex:0 0 auto; }
.fs-buy-body{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:12px; }
.fs-buy-body + .fs-buy-body{ margin-top:10px; }
.fs-bi{
  min-width:0; padding:14px 8px; text-align:center;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  background:#fbf5f8; border-radius:12px;
}
.fs-bi-t{ font-size:13px; color:#8a8a95; line-height:18px; }
.fs-tel{ display:inline-block; margin-top:7px; font-size:15px; font-weight:700; color:var(--brand); letter-spacing:.2px; text-decoration:none; }
.fs-sched{ margin-top:7px; font-size:12.5px; line-height:19px; color:#6f6f7a; }
.fs-time{ margin-top:4px; font-size:11px; line-height:16px; color:#a5a5b0; }
.fs-qr{ display:block; width:108px; max-width:100%; height:auto; margin-top:8px; background:#fff; padding:3px; border-radius:5px; box-shadow:0 1px 4px rgba(120,40,70,.10); }
.fs-divider{ height:1px; background:#f2e6ec; margin:16px 0; }
.fs-sec-online{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.fs-online-btn{
  flex:0 0 auto; height:33px; padding:0 18px; border:none; border-radius:6px;
  background:linear-gradient(90deg,var(--brand-2),var(--brand)); color:#fff;
  font-size:13.5px; font-weight:600; font-family:inherit; cursor:pointer;
  box-shadow:0 4px 10px rgba(232,68,127,.24); transition:filter .15s, transform .15s;
}
.fs-online-btn:hover{ filter:brightness(1.04); }
.fs-online-btn:active{ transform:translateY(1px); }

/* 聊天窗口 */
.fs-chat{
  position:fixed; right:88px; top:50%; width:358px; max-width:calc(100vw - 28px);
  height:428px; max-height:calc(100vh - 36px); z-index:95;
  display:flex; flex-direction:column; overflow:hidden;
  background:#f6f6f8; border-radius:14px;
  box-shadow:0 22px 60px rgba(80,20,45,.30), 0 4px 14px rgba(80,20,45,.12);
  opacity:0; visibility:hidden; transform:translateY(-50%) scale(.98);
  transition:opacity .18s ease, transform .18s ease, visibility .18s;
}
.fs-chat.on{ opacity:1; visibility:visible; transform:translateY(-50%) scale(1); }
.fs-chat-hd{
  flex:0 0 auto; height:62px; padding:0 14px; display:flex; align-items:center; gap:10px;
  background:linear-gradient(135deg,#ff5f96,#e8447f); color:#fff;
}
.fs-chat-logo{
  flex:0 0 auto; width:38px; height:38px; border-radius:50%; background:#fff;
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.fs-chat-logo img{ width:27px; height:27px; display:block; }
.fs-chat-name{ font-size:15.5px; font-weight:600; letter-spacing:.4px; }
.fs-chat-x{
  margin-left:auto; flex:0 0 auto; width:30px; height:30px; padding:0; border:none; border-radius:50%;
  background:rgba(255,255,255,.18); color:#fff; cursor:pointer;
  display:flex; align-items:center; justify-content:center; transition:background .15s;
}
.fs-chat-x:hover{ background:rgba(255,255,255,.32); }
.fs-chat-x svg{ width:14px; height:14px; }
.fs-chat-body{ flex:1 1 auto; overflow-y:auto; -webkit-overflow-scrolling:touch; padding:14px 14px 20px; }
.fs-chat-time{ text-align:center; font-size:11.5px; color:#adadb8; margin-bottom:14px; }
.fs-msg{ display:flex; gap:8px; align-items:flex-start; }
.fs-msg-av{
  flex:0 0 auto; width:34px; height:34px; border-radius:50%; background:#fff;
  display:flex; align-items:center; justify-content:center; box-shadow:0 2px 6px rgba(0,0,0,.08);
}
.fs-msg-av img{ width:24px; height:24px; display:block; }
.fs-bubble{
  min-width:0; max-width:calc(100% - 42px); padding:12px 13px;
  background:#fff; border-radius:10px; color:#3a3a44;
  font-size:13.5px; line-height:1.65; box-shadow:0 1px 3px rgba(0,0,0,.05);
}
.fs-bubble p{ margin:0; }
.fs-bubble-qr{
  display:block; width:100%; max-width:198px; margin:12px auto 2px;
  border-radius:6px; background:#fff;
}
/* 「正在输入」气泡（打开后 2 秒自动推送消息） */
.fs-typing{ display:flex; gap:8px; align-items:flex-start; }
.fs-typing[hidden]{ display:none; }
.fs-typing-b{
  display:flex; align-items:center; gap:5px; height:34px; padding:0 14px;
  background:#fff; border-radius:10px; box-shadow:0 1px 3px rgba(0,0,0,.05);
}
.fs-typing-b i{
  width:6px; height:6px; border-radius:50%; background:#c8c8d2;
  animation:fsTyping 1.1s infinite ease-in-out;
}
.fs-typing-b i:nth-child(2){ animation-delay:.16s; }
.fs-typing-b i:nth-child(3){ animation-delay:.32s; }
@keyframes fsTyping{ 0%,60%,100%{ opacity:.35; transform:translateY(0); } 30%{ opacity:1; transform:translateY(-3px); } }
.fs-msg[hidden]{ display:none; }
.fs-msg{ animation:fsMsgIn .26s ease both; }
@keyframes fsMsgIn{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:translateY(0); } }
@media (max-width:560px){
  .fs-wrap{ right:10px; }
  .fs-btn{ width:52px; height:52px; }
  .fs-ico{ width:38px; height:38px; }
  .fs-ico svg{ width:21px; height:21px; }
  .fs-panel{ right:64px; width:min(300px, calc(100vw - 84px)); padding:16px 14px; }
  .fs-qr{ width:96px; }
  .fs-tel{ font-size:14px; }
  .fs-chat{
    right:auto; left:50%; width:calc(100vw - 24px);
    height:min(470px, calc(100vh - 40px));
    transform:translate(-50%,-50%) scale(.98);
  }
  .fs-chat.on{ transform:translate(-50%,-50%) scale(1); }
}

/* ============ 定价修改限制弹窗（1 年只允许修改 1 次，2026-11-12） ============ */
.pm-card { text-align: center; padding: 22px 20px 20px; }
.pm-title { font-size: 16px; font-weight: 700; color: var(--ink); margin: 0 0 14px; }
.pm-warn {
  font-size: 14px; line-height: 1.78; color: #4a3b42; margin: 0 0 14px;
  background: #fff6f9; border: 1px solid #f7d9e4; border-radius: 10px; padding: 12px 13px;
  text-align: left; position: relative;
}
.pm-warn::before {
  content: "!"; position: absolute; left: 12px; top: 12px;
  width: 18px; height: 18px; border-radius: 50%; background: #e23a6e; color: #fff;
  font-size: 13px; font-weight: 800; line-height: 18px; text-align: center;
}
.pm-warn { padding-left: 40px; }
.pm-left { font-size: 13px; color: #8a7b82; margin: 0 0 4px; }
.pm-left b, #pmLeftNum { color: #e23a6e; font-weight: 800; font-size: 15px; }
.pm-note { font-size: 12.5px; color: #c0244d; margin: 0 0 16px; }
.pm-nc { font-size: 14.5px; line-height: 1.7; color: #4a3b42; margin: 2px 0 20px; }
.pm-btns { display: flex; gap: 12px; margin-top: 6px; }
.pm-btns-center { justify-content: center; }

/* 弹窗按钮统一美化：主按钮(粉渐变) / 次按钮(浅粉描边)，等高居中，两页一致（2026-11-12 修复取消按钮无边框） */
.pm-btns .btn-pink,
.pm-btns .btn-ghost {
  flex: 1;
  display: inline-flex; align-items: center; justify-content: center;
  height: 44px; padding: 0 16px; margin: 0;
  border-radius: 8px; font-size: 15px; font-weight: 600; line-height: 1;
  cursor: pointer; -webkit-tap-highlight-color: transparent;
  transition: background .18s ease, border-color .18s ease, color .18s ease,
              box-shadow .18s ease, transform .12s ease;
}
.pm-btns .btn-pink {
  border: 1px solid transparent;
  background: linear-gradient(90deg, var(--brand-2), var(--brand));
  color: #fff;
  box-shadow: 0 6px 16px rgba(232, 68, 127, .28);
}
.pm-btns .btn-pink:hover { box-shadow: 0 9px 22px rgba(232, 68, 127, .36); transform: translateY(-1px); }
.pm-btns .btn-pink:active { transform: translateY(0); box-shadow: 0 4px 12px rgba(232, 68, 127, .30); }
.pm-btns .btn-ghost {
  border: 1px solid #f6c9dc;
  background: #fff;
  color: #6a5b63;
}
.pm-btns .btn-ghost:hover { background: #fff6fa; border-color: #f2a5c6; color: var(--brand); }
.pm-btns .btn-ghost:active { background: #fdeef5; }

.pm-btns .btn-pink:disabled,
.btn-pink:disabled {
  background: #f1e4ea !important; color: #b8a9b1 !important; cursor: not-allowed;
  box-shadow: none !important; transform: none !important;
}
@media (max-width: 480px) {
  .pm-card { padding: 20px 16px 18px; }
  .pm-warn { font-size: 13.5px; }
}

/* ================= 工单 / 消息 悬浮入口与面板（2026-11-14） ================= */
.tk-btn{
  position:relative; width:58px; height:58px; padding:0; border:none; border-radius:50%;
  background:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 22px rgba(200,60,110,.26), 0 2px 6px rgba(200,60,110,.12);
  margin-bottom:14px; transition:transform .18s ease, box-shadow .18s ease;
}
.tk-btn:hover{ transform:translateY(-2px); box-shadow:0 12px 30px rgba(200,60,110,.34); }
.tk-btn:active{ transform:scale(.95); }
.tk-ico{
  width:42px; height:42px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,#ff7fae,#e8447f); box-shadow:0 4px 10px rgba(232,68,127,.35);
}
.tk-ico svg{ width:23px; height:23px; color:#fff; }
.tk-badge{
  position:absolute; top:-2px; right:-2px; min-width:18px; height:18px; padding:0 5px;
  border-radius:9px; background:#ff3d6e; color:#fff; font-style:normal; font-size:11px; font-weight:700;
  line-height:18px; text-align:center; border:2px solid #fff; box-sizing:content-box;
}
.tk-panel{
  position:fixed; right:72px; top:50%; width:360px; max-width:calc(100vw - 96px);
  background:#fff; border-radius:14px; z-index:96;
  box-shadow:0 16px 44px rgba(120,40,70,.20), 0 2px 8px rgba(120,40,70,.08);
  opacity:0; visibility:hidden; pointer-events:none;
  transform:translateY(-50%) translateX(8px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s;
  display:flex; flex-direction:column; max-height:80vh; overflow:hidden;
}
.tk-panel.on{ opacity:1; visibility:visible; pointer-events:auto; transform:translateY(-50%) translateX(0); }
.tk-panel::after{
  content:''; position:absolute; right:-6px; top:50%; margin-top:-6px;
  width:12px; height:12px; background:#fff; border-radius:2px; transform:rotate(45deg);
}
.tk-phd{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 16px; border-bottom:1px solid #f2e6ec; flex:0 0 auto;
}
.tk-ptitle{ font-size:16px; font-weight:700; color:var(--ink); }
.tk-pclose{
  width:30px; height:30px; border:0; background:#f6e9ef; border-radius:8px; cursor:pointer;
  display:grid; place-items:center; color:#b07a90; transition:background .15s, color .15s;
}
.tk-pclose:hover{ background:#f7d7e4; color:#e8447f; }
.tk-pclose svg{ width:16px; height:16px; }
.tk-tabs{ display:flex; gap:6px; padding:12px 14px 0; flex:0 0 auto; }
.tk-tab{
  position:relative; flex:1; height:36px; border:0; background:#f4e9ef; border-radius:8px;
  font-size:13.5px; font-weight:600; color:#9a8a92; cursor:pointer; font-family:inherit;
  transition:background .15s, color .15s;
}
.tk-tab.active{ background:#e8447f; color:#fff; }
.tk-tab-badge{
  position:absolute; top:-7px; right:-7px; min-width:16px; height:16px; padding:0 4px;
  border-radius:9px; background:#ff3d6e; color:#fff; font-style:normal;
  font-size:10px; font-weight:700; line-height:16px; text-align:center;
  border:1.5px solid #fff; box-sizing:content-box; pointer-events:none; z-index:2;
}
.tk-body{ flex:1 1 auto; overflow:auto; padding:14px 16px 16px; }
.tk-textarea{
  width:100%; min-height:120px; resize:vertical; border:1px solid #eddde4; border-radius:10px;
  padding:11px 12px; font-size:14px; font-family:inherit; color:var(--ink); line-height:1.55;
  box-sizing:border-box; background:#fff; transition:border-color .15s, box-shadow .15s;
}
.tk-textarea:focus{ outline:none; border-color:var(--brand-2); box-shadow:0 0 0 3px rgba(232,68,127,.10); }
.tk-charcount{ text-align:right; font-size:12px; color:#b6a3ab; margin:6px 2px 0; }
.tk-upload{ margin-top:10px; }
.tk-previews{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px; }
.tk-prev{ position:relative; width:62px; height:62px; border-radius:8px; overflow:hidden; border:1px solid #f0e0e8; background:#faf5f8; }
.tk-prev img{ width:100%; height:100%; object-fit:cover; display:block; }
.tk-prev-del{ position:absolute; top:2px; right:2px; width:18px; height:18px; border:0; border-radius:50%; background:rgba(0,0,0,.55); color:#fff; font-size:13px; line-height:18px; text-align:center; cursor:pointer; }
.tk-up-btn{ display:block; }
.tk-up-btn span{ display:block; text-align:center; padding:11px; border:1.5px dashed #f0c8da; border-radius:10px; font-size:13px; color:#e8447f; cursor:pointer; transition:background .15s; }
.tk-up-btn span:hover{ background:#fff5fa; }
.tk-submit{
  width:100%; height:46px; margin-top:14px; border:0; border-radius:10px;
  background:linear-gradient(90deg,var(--brand-2),var(--brand)); color:#fff; font-size:15px; font-weight:700;
  font-family:inherit; cursor:pointer; box-shadow:0 6px 16px rgba(232,68,127,.26); transition:filter .15s, transform .12s;
}
.tk-submit:hover{ filter:brightness(1.04); }
.tk-submit:active{ transform:translateY(1px); }
.tk-submit:disabled{ filter:grayscale(.2); opacity:.7; cursor:not-allowed; }
.tk-tip{ margin-top:10px; font-size:13px; min-height:16px; line-height:1.5; }
.tk-tip.tk-ok{ color:#1f9d55; }
.tk-tip.tk-err{ color:#d23b3b; }
.tk-empty{ padding:34px 10px; text-align:center; color:#b6a3ab; font-size:14px; }
/* 工单列表项：默认只显示一行问题摘要（不换行），点击展开看全文 + 客服回复 */
.tk-tk-item{ background:#fff; border:1px solid #f0e2ea; border-radius:12px; padding:12px 13px; margin-bottom:10px; transition:border-color .15s, background .15s, box-shadow .15s; }
.tk-tk-item.tk-unread{ border-color:#f4a8c4; background:#fffafc; box-shadow:0 2px 10px rgba(232,68,127,.07); }
.tk-tk-item.open{ border-color:#f4c2d6; }
.tk-tk-hd{ display:flex; align-items:center; gap:8px; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.tk-tk-title{ flex:1 1 auto; min-width:0; font-size:14.5px; font-weight:600; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; line-height:1.45; }
.tk-tk-item.tk-unread .tk-tk-title::before{ content:''; display:inline-block; width:7px; height:7px; border-radius:50%; background:#ff3d6e; margin-right:6px; vertical-align:middle; }
.tk-tk-arrow{ flex:0 0 auto; width:16px; height:16px; color:#c3aab5; transition:transform .2s ease, color .15s; }
.tk-tk-item.open .tk-tk-arrow{ transform:rotate(180deg); color:var(--brand); }
.tk-tk-meta{ display:flex; align-items:center; gap:8px; margin-top:6px; }
.tk-tk-time{ font-size:12px; color:#b6a3ab; }
.tk-st{ display:inline-block; padding:1px 9px; border-radius:10px; font-size:12px; font-weight:600; }
.tk-st-ok{ background:#eafaf0; color:#1f9d55; }
.tk-st-wait{ background:#fff4e0; color:#c8860a; }
.tk-tk-detail{ margin-top:11px; padding-top:11px; border-top:1px dashed #f2e4ea; animation:tkFade .18s ease; }
@keyframes tkFade{ from{ opacity:0; transform:translateY(-3px); } to{ opacity:1; transform:none; } }
.tk-tk-lb{ display:inline-block; font-size:11.5px; font-weight:700; color:#b07a90; background:#fdf2f7; border-radius:6px; padding:2px 8px; margin-bottom:7px; letter-spacing:.3px; }
.tk-tk-content{ font-size:13.5px; color:#4a3d44; line-height:1.7; word-break:break-word; }
.tk-tk-imgs{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.tk-tk-img{ width:64px; height:64px; border-radius:8px; object-fit:cover; cursor:pointer; border:1px solid #f0e0e8; }
.tk-tk-reply{ margin-top:12px; padding:1px 12px 11px; background:#fdf6fa; border-left:3px solid var(--brand); border-radius:8px; }
.tk-tk-reply .tk-lb-kefu{ background:#ffe9f1; color:var(--brand); margin:10px 0 6px; }
.tk-tk-reply-t{ font-size:13.5px; color:#5c4c53; line-height:1.7; word-break:break-word; }
/* 分页：页码最多 3 个 */
.tk-pager{ display:flex; align-items:center; justify-content:center; gap:6px; padding:10px 0 2px; }
.tk-pager button{ min-width:30px; height:30px; padding:0 9px; border:1px solid #f0e0e8; background:#fff; border-radius:8px; font-size:13px; font-weight:600; font-family:inherit; color:#8a7078; cursor:pointer; transition:background .15s, border-color .15s, color .15s, box-shadow .15s; }
.tk-pager button:hover:not(:disabled){ border-color:#f4a8c4; color:var(--brand); background:#fff8fb; }
.tk-pager button.active{ background:linear-gradient(90deg,var(--brand-2),var(--brand)); border-color:transparent; color:#fff; box-shadow:0 4px 10px rgba(232,68,127,.24); }
.tk-pager button:disabled{ opacity:.38; cursor:not-allowed; }
.tk-pg-nav{ font-size:15px; line-height:1; padding-bottom:2px; }
.tk-msg-item{ border:1px solid #f0e0e8; border-radius:12px; padding:12px 13px; margin-bottom:10px; cursor:pointer; transition:border-color .15s, background .15s; background:#fff; }
.tk-msg-item:hover{ border-color:#f4a8c4; background:#fff8fb; }
.tk-msg-item.tk-msg-unread{ border-color:#f4a8c4; background:#fff6fa; }
.tk-msg-top{ display:flex; align-items:center; gap:8px; }
.tk-msg-title{ flex:1 1 auto; min-width:0; font-size:14.5px; font-weight:600; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
/* 发送人标识：群发=平台发送 / 指定=客服发送 */
.tk-msg-from{ flex:0 0 auto; font-size:11px; font-weight:600; padding:2px 8px; border-radius:8px; line-height:1.35; }
.tk-from-plat{ background:#eaf1ff; color:#2b6fd6; }
.tk-from-kefu{ background:#ffe9f1; color:var(--brand); }
.tk-msg-unread .tk-msg-title::before{ content:''; display:inline-block; width:7px; height:7px; border-radius:50%; background:#ff3d6e; margin-right:6px; vertical-align:middle; }
.tk-msg-time{ margin-top:6px; font-size:12px; color:#b6a3ab; }
.tk-img-mask{ position:fixed; inset:0; background:rgba(30,15,25,.82); display:flex; align-items:center; justify-content:center; z-index:120; cursor:zoom-out; }
.tk-img-big{ max-width:90vw; max-height:90vh; border-radius:8px; box-shadow:0 12px 40px rgba(0,0,0,.4); }
/* 消息详情弹窗 */
.tk-msg-mask{ background:rgba(28,14,23,.52); -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px); padding:20px; }
.tk-msg-detail{
  width:min(440px,100%); max-height:min(78vh,580px); background:#fff; border-radius:16px;
  display:flex; flex-direction:column; overflow:hidden; cursor:default;
  box-shadow:0 24px 64px rgba(60,20,40,.34); animation:tkPop .2s ease;
}
@keyframes tkPop{ from{ opacity:0; transform:translateY(8px) scale(.985); } to{ opacity:1; transform:none; } }
.tk-md-hd{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:15px 16px 13px; border-bottom:1px solid #f7edf2; flex:0 0 auto; }
.tk-md-hd-t{ font-size:15px; font-weight:700; color:var(--ink); letter-spacing:.3px; }
.tk-md-x{
  width:30px; height:30px; padding:0; border:0; border-radius:50%; background:#f6eef2; color:#a98b98;
  display:grid; place-items:center; cursor:pointer; transition:background .15s, color .15s, transform .12s;
}
.tk-md-x:hover{ background:#ffe3ee; color:var(--brand); }
.tk-md-x:active{ transform:scale(.94); }
.tk-md-x svg{ width:14px; height:14px; }
.tk-md-bd{ flex:1 1 auto; overflow:auto; padding:16px; -webkit-overflow-scrolling:touch; }
.tk-md-field + .tk-md-field{ margin-top:16px; }
.tk-md-lb{ display:inline-block; font-size:12px; font-weight:700; color:#b07a90; background:#fdf2f7; border-radius:6px; padding:2px 8px; margin-bottom:8px; letter-spacing:.3px; }
.tk-md-val{ font-size:14.5px; color:#3f3339; line-height:1.75; word-break:break-word; }
.tk-md-title{ font-size:15.5px; font-weight:700; color:#2b2330; }
.tk-md-content{ background:#faf7f9; border-radius:10px; padding:12px 13px; color:#4a3d44; }
.tk-md-foot{ display:flex; align-items:center; gap:8px; padding:12px 16px; border-top:1px solid #f7edf2; background:#fdfbfc; flex:0 0 auto; }
.tk-md-ft-time{ margin-left:auto; font-size:12px; color:#b6a3ab; }
@media (max-width: 560px) {
  /* 与在线客服图标同尺寸、同列对齐（2026-11-14 手机端修复） */
  .tk-btn{ width:52px; height:52px; margin-bottom:12px; }
  .tk-ico{ width:38px; height:38px; }
  .tk-ico svg{ width:21px; height:21px; }
  .tk-panel{ right:10px; width:min(360px, calc(100vw - 24px)); }
  .tk-panel::after{ display:none; }
  /* 消息详情：手机端更贴边、圆角收小 */
  .tk-msg-mask{ padding:16px; }
  .tk-msg-detail{ border-radius:14px; max-height:80vh; }
  .tk-md-bd{ padding:14px; }
}

/* ============ APP 下载 漂浮按钮 + 弹窗（2026-11-14） ============ */
.appdl-btn{
  position:relative; width:58px; height:58px; padding:0; border:none; border-radius:50%;
  background:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 22px rgba(200,60,110,.26), 0 2px 6px rgba(200,60,110,.12);
  margin-bottom:14px; transition:transform .18s ease, box-shadow .18s ease;
}
.appdl-btn:hover{ transform:translateY(-2px); box-shadow:0 12px 30px rgba(200,60,110,.34); }
.appdl-btn:active{ transform:scale(.95); }
.appdl-ico{
  width:42px; height:42px; border-radius:50%;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px;
  background:linear-gradient(135deg,#ff7fae,#e8447f); box-shadow:0 4px 10px rgba(232,68,127,.35);
}
.appdl-ico svg{ width:19px; height:19px; color:#fff; display:block; }
.appdl-ico-t{
  font-size:8px; font-weight:800; line-height:1; color:#fff; letter-spacing:.3px;
  font-family:"PingFang SC","Microsoft YaHei",system-ui,-apple-system,Arial,sans-serif;
  transform:translateY(-.5px);
}
/* 弹窗 */
.appdl-mask{
  position:fixed; inset:0; z-index:120; display:flex; align-items:center; justify-content:center;
  background:rgba(40,12,24,.42); backdrop-filter:blur(2px); -webkit-backdrop-filter:blur(2px);
  opacity:0; visibility:hidden; transition:opacity .2s ease, visibility .2s;
}
.appdl-mask.on{ opacity:1; visibility:visible; }
.appdl-card{
  width:360px; max-width:calc(100vw - 32px); max-height:calc(100vh - 32px); overflow:auto;
  background:#fff; border-radius:16px; display:flex; flex-direction:column;
  box-shadow:0 22px 60px rgba(80,20,45,.34), 0 4px 14px rgba(80,20,45,.14);
  transform:translateY(10px) scale(.98); transition:transform .2s ease;
}
.appdl-mask.on .appdl-card{ transform:translateY(0) scale(1); }
.appdl-hd{
  display:flex; align-items:center; justify-content:space-between; padding:16px 18px;
  background:linear-gradient(135deg,#ff5f96,#e8447f); color:#fff;
  border-radius:16px 16px 0 0; flex:0 0 auto;
}
.appdl-hd-t{ font-size:16.5px; font-weight:700; letter-spacing:.4px; }
.appdl-x{
  width:30px; height:30px; border:0; background:rgba(255,255,255,.18); border-radius:50%; cursor:pointer;
  display:grid; place-items:center; color:#fff; transition:background .15s;
}
.appdl-x:hover{ background:rgba(255,255,255,.32); }
.appdl-x svg{ width:15px; height:15px; }
.appdl-bd{ padding:18px 18px 4px; flex:1 1 auto; }
.appdl-m-t{
  font-size:15px; font-weight:700; color:var(--ink); margin-bottom:12px;
}
.appdl-qr-wrap{ display:flex; justify-content:center; padding:4px 0 2px; }
.appdl-qr{ width:188px; height:188px; object-fit:contain; background:#fff; border:1px solid #f0e3ea; border-radius:12px; padding:8px; box-shadow:0 2px 8px rgba(120,40,70,.08); }
.appdl-note{
  display:flex; gap:8px; margin-top:12px; padding:10px 12px; background:#fff7fb; border:1px solid #f7dceb; border-radius:10px;
  color:#9a5d77; font-size:12.5px; line-height:1.6;
}
.appdl-note svg{ width:16px; height:16px; flex:0 0 auto; color:#e8447f; margin-top:1px; }
.appdl-note p{ margin:0; }
.appdl-foot{
  display:flex; align-items:flex-start; gap:7px; padding:12px 18px 16px; flex:0 0 auto;
  font-size:12.5px; color:#9a6a82; line-height:1.5;
}
.appdl-foot svg{ width:16px; height:16px; flex:0 0 auto; color:#e8447f; margin-top:1px; }
.appdl-foot span{ flex:1 1 auto; }
.appdl-foot strong{ color:#e8447f; }
@media (max-width:560px){
  .appdl-btn{ width:52px; height:52px; margin-bottom:12px; }
  .appdl-ico{ width:38px; height:38px; gap:1px; }
  .appdl-ico svg{ width:17px; height:17px; }
  .appdl-ico-t{ font-size:7px; }
  .appdl-card{ width:340px; }
  .appdl-qr{ width:172px; height:172px; }
}

/* ================= 每日打卡引导弹窗（透明红包图，进入「我的」时按需弹出） ================= */
.daka-modal { z-index: 152; }
.daka-mask { background: rgba(22, 10, 18, .62); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); }
.daka-pop {
  position: relative; width: min(88vw, 358px);
  display: flex; flex-direction: column; align-items: center;
  animation: dakaIn .46s cubic-bezier(.22, .9, .28, 1.12) both;
}
.daka-link {
  display: block; width: 100%; cursor: pointer; border-radius: 24px;
  -webkit-tap-highlight-color: transparent; outline: none;
}
.daka-img {
  display: block; width: 100%; height: auto;
  filter: drop-shadow(0 16px 30px rgba(150, 8, 44, .45));
  transition: transform .22s ease, filter .22s ease;
  pointer-events: none;
}
.daka-link:hover .daka-img { transform: translateY(-4px) scale(1.015); filter: drop-shadow(0 22px 38px rgba(150, 8, 44, .52)); }
.daka-link:active .daka-img { transform: scale(.98); }
.daka-link:focus-visible { box-shadow: 0 0 0 3px rgba(255, 255, 255, .55); }
.daka-close {
  position: absolute; top: 8px; right: 8px; width: 34px; height: 34px;
  display: flex; align-items: center; justify-content: center;
  border: 0; border-radius: 50%; cursor: pointer;
  background: rgba(255, 255, 255, .94); color: #b11543;
  box-shadow: 0 5px 16px rgba(70, 6, 26, .3);
  transition: transform .18s ease, background .18s ease;
}
.daka-close:hover { background: #fff; transform: rotate(90deg) scale(1.06); }
.daka-close:active { transform: rotate(90deg) scale(.94); }
.daka-close svg { width: 16px; height: 16px; }
.daka-hint {
  margin-top: 14px; font-size: 12.5px; letter-spacing: .05em; color: #fff;
  text-shadow: 0 2px 8px rgba(0, 0, 0, .5); opacity: .92;
  animation: dakaHintIn .5s ease .18s both;
}
@keyframes dakaIn {
  from { opacity: 0; transform: translateY(22px) scale(.84); }
  to   { opacity: 1; transform: none; }
}
@keyframes dakaHintIn { from { opacity: 0; } to { opacity: .92; } }
@media (max-width: 560px) {
  .daka-pop { width: min(78vw, 296px); }
  .daka-close { top: 6px; right: 6px; width: 31px; height: 31px; }
  .daka-close svg { width: 15px; height: 15px; }
  .daka-hint { margin-top: 11px; font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .daka-pop, .daka-hint { animation: none; }
}

/* ===== 账单记录 + 提现驳回原因弹窗（2026-11-14） ===== */
.bill-kind{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:20px;padding:0 7px;margin-right:7px;border-radius:5px;font-size:11px;font-weight:700;vertical-align:middle}
.bill-kind.in{background:#eaf8f0;color:#2e9b63}
.bill-kind.out{background:#fff0f6;color:#e8447f}
.bill-st{display:inline-flex;align-items:center;height:20px;padding:0 8px;margin-left:6px;border-radius:999px;font-size:11px;font-weight:700;vertical-align:middle}
.bill-st.wait{background:#fff6e5;color:#c9791a}
.bill-st.paid{background:#eaf8f0;color:#2e9b63}
.bill-st.rejected{background:#ffedf0;color:#e23c4e}
.bill-plus{color:#2e9b63}
.bill-minus{color:#e8447f}
.wr-btn{display:inline-flex;align-items:center;justify-content:center;height:26px;padding:0 11px;margin-top:8px;border:1px solid #f6c9dc;border-radius:6px;background:#fff;color:#e8447f;font-size:12px;font-weight:700;cursor:pointer;transition:background .15s,transform .1s}
.wr-btn:hover{background:#fff0f6}
.wr-btn:active{transform:scale(.96)}
.wr-modal{z-index:160}
.wr-reason{display:block;text-align:left;white-space:pre-wrap;word-break:break-word;line-height:1.75;font-size:14px;max-height:44vh;overflow-y:auto;padding:12px 14px}
.wr-foot{margin-top:4px;font-size:12px;color:#a88897}
@media (max-width:560px){ .wr-reason{font-size:13.5px;max-height:38vh} }

/* ===== 生铁会员 / 相册关闭弹窗：PC + 手机 H5 兼容（2026-11-14） ===== */
.ms-freetip{display:inline-flex;align-items:center;justify-content:center;padding:0 12px;height:34px;border-radius:8px;background:#fff4e8;color:#b9701a;font-size:12px;font-weight:600;white-space:nowrap}
.exp-card h3{line-height:1.5}
@media (max-width:480px){
  .exp-card{width:min(320px,90vw);padding:24px 18px 18px;border-radius:18px}
  .exp-card h3{font-size:16px;line-height:1.5}
  .exp-text{font-size:12.5px;line-height:1.7;margin-bottom:14px}
  .exp-ico{width:50px;height:50px;border-radius:15px;margin-bottom:12px}
  .exp-btn{min-width:0;width:100%;height:42px}
  .ms-freetip{height:auto;min-height:32px;white-space:normal;text-align:center;padding:6px 10px;font-size:11.5px}
}
.ap-locked{margin-top:10px;padding:10px 12px;border-radius:8px;background:#fff4e8;border:1px solid #f3d9b4;color:#a8701e;font-size:12.5px;line-height:1.7}
@media (prefers-reduced-motion:reduce){ .exp-btn{transition:none} }
