/* ============================================================
 * pet.css —— 知夏角色养成系统样式（Home 页 HUD + 养成面板弹窗）
 * 全部走 :root 变量（css/style.css），浅色模式固定。
 * ============================================================ */

/* 格子纸背景变量（弹窗 22px 档）：pet 系弹窗外壳统一同一张纸，消除「格子区外一圈暖白」
 * 的割裂（用户 2026-08-31 手测反馈；pet 页大背景的格子试装后按用户意见撤回，保持原暖白空底）。
 * 注意必须挂 :root——pet 系弹窗 DOM 在 body 顶层，不在 #pet-section 内，
 * 变量放 #pet-section 会解析失败（探针实测 background 整条失效变 none）。 */
:root {
  --pet-grid-page:
    linear-gradient(rgba(75, 58, 47, 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(75, 58, 47, 0.05) 1px, transparent 1px),
    #FFF5E9;
  --pet-grid-modal:
    linear-gradient(rgba(75, 58, 47, 0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(75, 58, 47, 0.045) 1px, transparent 1px),
    #FFF5E9;
}

/* ---------- 问候区 wrap：角色 + HUD 竖排 ---------- */
.pet-greeting-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

/* 角色重建淡入遮闪（setStageVariant 换剪影时） */
.wc-avatar-stage {
  transition: transform 0.18s ease, opacity 0.35s ease;
}

/* ---------- 问候区 HUD ---------- */
.pet-hud {
  width: 168px;
  background: var(--color-surface-elevated);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 8px 10px;
  cursor: pointer;
  box-shadow: var(--shadow-sm);
  transition: box-shadow var(--transition-fast), transform var(--transition-fast);
  user-select: none;
}
.pet-hud:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-1px);
}

.pet-hud-top {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 6px;
}
.pet-hud-level {
  font-size: 12px;
  font-weight: 700;
  color: var(--color-primary);
  background: var(--color-primary-alpha);
  border-radius: var(--radius-sm);
  padding: 1px 6px;
  letter-spacing: 0.2px;
}
.pet-hud-stage {
  font-size: 11px;
  font-weight: 600;
  color: var(--color-text-secondary);
  flex: 1;
}
/* 扭蛋硬币余额徽章（PET-GACHA WP-G2；G4 潦草风重皮肤时再统一改造） */
.pet-hud-coins {
  font-size: 11px;
  font-weight: 700;
  color: var(--color-primary);
  background: var(--color-primary-alpha);
  border-radius: var(--radius-sm);
  padding: 1px 6px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.pet-hud-btn {
  font-size: 10px;
  font-weight: 600;
  color: var(--color-text-on-primary);
  background: var(--color-primary);
  border-radius: var(--radius-sm);
  padding: 2px 7px;
  opacity: 0.92;
}
.pet-hud-btn:hover { opacity: 1; }

.pet-hud-exp {
  height: 4px;
  border-radius: var(--radius-full);
  background: var(--color-border);
  overflow: hidden;
  margin-bottom: 7px;
}
.pet-hud-exp-fill {
  height: 100%;
  border-radius: var(--radius-full);
  background: linear-gradient(90deg, var(--color-primary), var(--color-accent));
  transition: width 0.5s ease;
}

.pet-hud-stats {
  display: flex;
  gap: 10px;
}
.pet-stat-dot {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 10px;
  color: var(--color-text-muted);
}
.pet-stat-dot::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color-border-strong);
}
.pet-stat-dot.good::before { background: var(--color-success); }
.pet-stat-dot.mid::before  { background: var(--color-warning); }
.pet-stat-dot.bad::before  { background: var(--color-danger); }
.pet-stat-num {
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  color: var(--color-text-secondary);
}

/* ---------- 养成面板弹窗 ---------- */
#pet-modal .modal-content.pet-modal-content {
  width: min(94vw, 860px);
  max-width: calc(100vw - 24px);
  max-height: min(88vh, 760px);
  border-radius: var(--radius-xl);
  border: 1px solid var(--color-border-strong);
  box-shadow: var(--shadow-xl);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 0;
}
.pet-modal-header {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px 12px;
  border-bottom: 1px solid var(--color-border);
}
.pet-modal-header h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  color: var(--color-text);
}

#pet-modal-body {
  flex: 1 1 auto;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 18px 22px 22px;
}
#pet-modal-body::-webkit-scrollbar { width: 8px; }
#pet-modal-body::-webkit-scrollbar-thumb {
  background: var(--color-border-strong);
  border-radius: 8px;
  border: 2px solid var(--color-surface);
}

/* 成长记录弹窗（pet 页「全部记录」展开全部成长史） */
#pet-records-modal .modal-content.pet-records-content {
  width: min(94vw, 700px);
  max-width: calc(100vw - 24px);
  max-height: min(85vh, 760px);
  border-radius: var(--radius-xl);
  border: 1px solid var(--color-border-strong);
  box-shadow: var(--shadow-xl);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 0;
}
#pet-records-body {
  flex: 1 1 auto;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 16px 22px 22px;
}
#pet-records-body::-webkit-scrollbar { width: 8px; }
#pet-records-body::-webkit-scrollbar-thumb {
  background: var(--color-border-strong);
  border-radius: 8px;
  border: 2px solid var(--color-surface);
}
.pet-records-meta {
  font-family: var(--font-mono, 'JetBrains Mono', monospace);
  font-size: 10.5px;
  letter-spacing: 1px;
  color: var(--color-text-muted);
  text-transform: uppercase;
  padding-bottom: 8px;
  border-bottom: 1px dashed var(--color-border);
  margin-bottom: 6px;
}

.pet-flash {
  display: none;
  margin-bottom: 10px;
  padding: 8px 12px;
  border-radius: var(--radius-md);
  background: var(--color-warning-alpha);
  color: var(--color-text-secondary);
  font-size: 12px;
  text-align: center;
}
.pet-flash.visible { display: block; }

/* 顶部：角色 + 等级信息 */
.pet-panel-top {
  display: flex;
  align-items: center;
  gap: 20px;
  padding-bottom: 16px;
  border-bottom: 1px dashed var(--color-border);
}
.pet-modal-stage-wrap {
  flex-shrink: 0;
}
.pet-modal-stage {
  width: 140px;
  height: 140px;
  border-radius: var(--radius-full);
  background: var(--gradient-surface-soft, var(--color-surface-elevated));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.6);
  overflow: visible;
}
.pet-modal-stage svg {
  width: 100%;
  height: 100%;
  display: block;
  overflow: visible;
}
.pet-panel-info {
  flex: 1;
  min-width: 0;
}
.pet-panel-info-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  flex-wrap: wrap;
}
.pet-panel-level {
  font-size: 15px;
  font-weight: 700;
  color: var(--color-primary);
  background: var(--color-primary-alpha);
  border-radius: var(--radius-sm);
  padding: 2px 9px;
}
.pet-panel-stage {
  font-size: 14px;
  font-weight: 600;
  color: var(--color-text);
}
.pet-panel-bond {
  font-size: 12px;
  color: var(--color-text-muted);
}
.pet-panel-exp {
  height: 8px;
  border-radius: var(--radius-full);
  background: var(--color-border);
  overflow: hidden;
  margin-bottom: 6px;
}
.pet-panel-exp-fill {
  height: 100%;
  border-radius: var(--radius-full);
  background: linear-gradient(90deg, var(--color-primary), var(--color-accent));
  transition: width 0.5s ease;
}
.pet-panel-exp-num {
  font-size: 11px;
  color: var(--color-text-muted);
  font-variant-numeric: tabular-nums;
}

/* 状态条 */
.pet-status-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  padding: 14px 0;
}
.pet-status-item {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.pet-status-label {
  font-size: 11px;
  color: var(--color-text-muted);
}
.pet-status-bar {
  height: 7px;
  border-radius: var(--radius-full);
  background: var(--color-border);
  overflow: hidden;
}
.pet-status-fill {
  height: 100%;
  border-radius: var(--radius-full);
  background: var(--color-success);
  transition: width 0.6s ease;
}
.pet-status-fill.mid { background: var(--color-warning); }
.pet-status-fill.bad { background: var(--color-danger); }
.pet-status-val {
  font-size: 11px;
  font-weight: 600;
  color: var(--color-text-secondary);
  font-variant-numeric: tabular-nums;
}

/* 互动区 */
.pet-interact-actions {
  padding: 4px 0 14px;
}
.pet-interact-btns {
  display: flex;
  gap: 10px;
}
.pet-interact-btn {
  flex: 1;
  height: 36px;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border-strong);
  background: var(--color-surface);
  color: var(--color-text);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  transition: var(--transition-fast);
}
.pet-interact-btn:hover:not(.disabled) {
  border-color: var(--color-primary);
  color: var(--color-primary);
  background: var(--color-primary-alpha);
}
.pet-interact-btn.disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.pet-btn-hint {
  font-size: 11px;
  font-weight: 500;
  color: var(--color-text-muted);
}

.pet-food-chips {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
  margin-top: 10px;
}
.pet-food-chip {
  height: 52px;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border);
  background: var(--color-surface-elevated);
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  transition: var(--transition-fast);
  padding: 0 4px;
}
.pet-food-chip:hover:not(.disabled) {
  border-color: var(--color-primary);
  transform: translateY(-1px);
  box-shadow: var(--shadow-sm);
}
.pet-food-chip.disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.pet-food-name {
  font-size: 12px;
  font-weight: 600;
  color: var(--color-text);
}
.pet-food-left {
  font-size: 10px;
  color: var(--color-text-muted);
  font-variant-numeric: tabular-nums;
}

/* 区块标题 */
.pet-section-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--color-text);
  margin: 14px 0 8px;
  padding-left: 8px;
  border-left: 3px solid var(--color-primary);
}

/* 成长史 */
.pet-history-list {
  display: flex;
  flex-direction: column;
}
.pet-history-empty {
  font-size: 12px;
  color: var(--color-text-muted);
  padding: 8px 0;
}
.pet-history-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 0;
  border-bottom: 1px dashed var(--color-border);
  font-size: 12px;
}
.pet-history-item:last-child { border-bottom: none; }
.pet-history-badge {
  flex-shrink: 0;
  font-size: 10px;
  font-weight: 700;
  border-radius: var(--radius-sm);
  padding: 1px 6px;
  color: var(--color-text-on-primary);
}
.pet-history-badge.levelup { background: var(--color-primary); }
.pet-history-badge.stage   { background: var(--color-accent); }
.pet-history-badge.interact { background: var(--color-border-strong); }
.pet-history-line {
  flex: 1;
  min-width: 0;
  color: var(--color-text-secondary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pet-history-time {
  flex-shrink: 0;
  font-size: 10px;
  color: var(--color-text-muted);
  font-variant-numeric: tabular-nums;
}

/* 五维迷你表 */
.pet-attrs-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
}
.pet-attr-item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 7px 4px;
  border-radius: var(--radius-md);
  background: var(--color-surface-elevated);
  border: 1px solid var(--color-border);
}
.pet-attr-icon { font-size: 13px; }
.pet-attr-name {
  font-size: 11px;
  color: var(--color-text-secondary);
}
.pet-attr-level {
  font-size: 11px;
  font-weight: 700;
  color: var(--color-text);
  font-variant-numeric: tabular-nums;
}
.pet-attrs-link {
  display: block;
  margin-top: 10px;
  font-size: 12px;
  color: var(--color-primary);
  cursor: pointer;
  text-align: right;
}
.pet-attrs-link:hover { text-decoration: underline; }

/* ---------- 移动端适配 ---------- */
@media (max-width: 768px) {
  .pet-hud { width: 150px; }
  .pet-panel-top { gap: 12px; }
  .pet-modal-stage { width: 108px; height: 108px; }
  .pet-status-row { grid-template-columns: 1fr; gap: 8px; }
  .pet-food-chips { grid-template-columns: repeat(4, 1fr); }
  .pet-attrs-grid { grid-template-columns: repeat(3, 1fr); }
}

/* ============================================================
 * 问候区布局重排（2026-08-22）：角色养成区占主体，问候文字缩小置底
 * 原 .wc-greeting 为横排（角色+文字并排），改为纵向：
 *   角色（放大）→ 养成 HUD → 问候文字（缩小，放最底部）
 * 选择器加 # 前缀精准限定问候卡片，不误伤其它 .wc-greeting 用法
 * ============================================================ */
#wc-greeting {
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 28px 28px 16px;
}
#wc-greeting .wc-greeting-left {
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
#wc-greeting .wc-avatar-stage {
  width: 172px;
  height: 172px;
}
#wc-greeting .wc-greeting-text {
  margin-top: 0;
}
#wc-greeting .wc-greeting-title {
  font-size: 15px;
  font-weight: 600;
}
#wc-greeting .wc-greeting-meta {
  font-size: 11px;
  opacity: 0.72;
}
#wc-greeting .wc-greeting-quote {
  font-size: 11px;
}

/* 养成 HUD 放大，与角色比例协调 */
.pet-greeting-wrap {
  gap: 10px;
}
.pet-hud {
  width: 232px;
  padding: 10px 14px;
}
.pet-hud-level { font-size: 13px; }
.pet-hud-stage { font-size: 12px; }
.pet-hud-exp { height: 6px; margin-bottom: 8px; }
.pet-stat-dot { font-size: 11px; }
.pet-stat-num { font-size: 12px; }

@media (max-width: 768px) {
  #wc-greeting { padding: 22px 18px 14px; gap: 8px; }
  #wc-greeting .wc-avatar-stage { width: 124px; height: 124px; }
  #wc-greeting .wc-greeting-title { font-size: 13px; }
  #wc-greeting .wc-greeting-meta { font-size: 10px; }
  #wc-greeting .wc-greeting-quote { font-size: 10px; }
  .pet-hud { width: 186px; }
}

/* ============================================================
 * Pet 模块全幅页面（#pet-section）
 * 设计方向：Demo C，舞台沉浸式
 * ============================================================ */

/* Pet 页为全高沉浸布局：主内容区精确占满视口剩余高度并禁止滚动 */
body.pet-module-active .main-content {
  height: calc(100vh - 52px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}

#pet-section {
  /* 占满主内容区剩余高度（顶部导航 52px + .main-content 上下 padding 各 24px）；
   * 拉伸代替居中：格子窗纵向撑满可用区，不因内容变矮留大片空白（2026-09-01 用户反馈） */
  min-height: calc(100vh - 52px - 2 * var(--space-6));
  display: flex;
  align-items: stretch;
  justify-content: center;
  padding: 24px 28px 36px;
  box-sizing: border-box;
}

.pet-page-theater {
  width: 100%;
  max-width: 1160px;
  max-height: 100%;
  /* 格子窗撑满一屏（router 切页用内联 display:block 把 section 的 flex 压掉了，
   * align-items 拉伸不生效——直接给剧场自身 min-height：视口 - 导航52 - section上下留白60 - main-content 上下 2×24） */
  min-height: calc(100vh - 52px - 60px - 2 * var(--space-6));
  margin: 0 auto;
  border-radius: var(--radius-xl);
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-lg);
  overflow: hidden;
  background: radial-gradient(ellipse 900px 560px at 50% 34%, #FFF8E9 0%, var(--color-bg) 52%, #F5F0E8 100%);
  display: flex;
  flex-direction: column;
}

/* ── 页头 ── */
.pet-page-head {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: clamp(12px, 2vh, 18px) 30px 0;
}
/* 扭蛋硬币余额徽章（PET-GACHA WP-G2；G4 潦草风重皮肤时再统一改造） */
.pet-page-coins {
  margin-left: 12px;
  font-size: 11px;
  font-weight: 700;
  color: var(--color-primary);
  background: var(--color-primary-alpha);
  border-radius: var(--radius-sm);
  padding: 1px 8px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.pet-page-title {
  font-family: var(--font-serif, 'Playfair Display', serif);
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 3px;
  color: var(--color-text-secondary);
  margin: 0;
}
.pet-page-title b {
  color: var(--color-primary);
  font-size: 19px;
  margin-right: 10px;
  letter-spacing: 5px;
}
.pet-page-head-brief {
  font-family: var(--font-mono, 'JetBrains Mono', monospace);
  font-size: 10.5px;
  color: var(--color-text-muted);
  letter-spacing: 2px;
}
.pet-info-icons {
  display: flex;
  align-items: center;
  gap: 8px;
  padding-right: 14px;
  border-right: 1px dashed var(--color-border-strong);
}

.pet-stage-btns {
  display: flex;
  flex-direction: row;
  gap: 10px;
  align-items: center;
}

.pet-head-icon {
  position: relative;
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border-strong);
  background: var(--color-surface-elevated);
  color: var(--color-text-secondary);
  cursor: pointer;
  transition: all var(--transition-fast);
  box-shadow: var(--shadow-sm);
  padding: 0;
}
.pet-head-icon:hover {
  transform: translateY(-1px);
  border-color: var(--color-primary-light);
  color: var(--color-primary);
  box-shadow: var(--shadow-md);
}
.pet-head-icon-icon {
  display: flex;
  align-items: center;
  justify-content: center;
}
.pet-head-icon svg {
  width: 18px;
  height: 18px;
  display: block;
}
.pet-head-icon.t-level   { color: var(--color-accent); }
.pet-head-icon.t-bond    { color: var(--color-danger); }
.pet-head-icon.t-attrs   { color: var(--color-primary); }
.pet-head-icon.t-history { color: var(--color-text-secondary); }

.pet-head-icon-tip {
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%) translateY(6px);
  min-width: 130px;
  padding: 8px 10px;
  background: var(--color-text);
  color: #fff;
  font-size: var(--font-size-xs);
  line-height: 1.6;
  border-radius: var(--radius-md);
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
  z-index: 10;
  text-align: center;
}
.pet-head-icon-tip::after {
  content: '';
  position: absolute;
  top: 100%;
  left: var(--tip-arrow-x, 50%); /* 防裁剪钳制时由 js/pet.js clampTipNow 设 px 值，箭头仍指向按钮中心 */
  transform: translateX(-50%);
  border: 5px solid transparent;
  border-top-color: var(--color-text);
}
.pet-head-icon:hover .pet-head-icon-tip,
.pet-tip-host:hover .pet-head-icon-tip {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* 悬停气泡宿主：stage 图标按钮/硬币/手册/赞助等非角标按钮复用 pet-head-icon-tip 气泡 */
.pet-tip-host { position: relative; }

.pet-head-icon .level-ring-track,
.pet-head-icon .level-ring-fill {
  fill: none;
  stroke-width: 2.5;
}
.pet-head-icon .level-ring-track {
  stroke: var(--color-border);
}
.pet-head-icon .level-ring-fill {
  stroke: currentColor;
}

/* ── 舞台 ── */
.pet-page-stage {
  position: relative;
  /* 高度随视口自适应：大屏 420px，小屏按比例收缩，极限 180px */
  min-height: clamp(180px, 50vh, 420px);
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: clamp(10px, 2vh, 18px) 0 clamp(12px, 3vh, 30px);
  flex: 1 1 auto;
}
.pet-page-glow {
  position: absolute;
  left: 50%;
  top: 52%;
  transform: translate(-50%, -50%);
  width: clamp(280px, 42vh, 540px);
  height: clamp(190px, 30vh, 350px);
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(201, 162, 39, 0.12) 0%, rgba(201, 162, 39, 0.04) 48%, transparent 72%);
  pointer-events: none;
}
/* 台词 */
.pet-page-quote {
  font-family: var(--font-serif, 'Playfair Display', serif);
  font-size: clamp(15px, 2.4vh, 21px);
  font-weight: 700;
  letter-spacing: 1.5px;
  color: var(--color-text);
  position: relative;
  z-index: 2;
  margin: 0 0 clamp(2px, 0.6vh, 6px) 0;
}
.pet-page-quote::before { content: '\300C'; color: var(--color-accent); margin-right: 2px; }
.pet-page-quote::after { content: '\300D'; color: var(--color-accent); margin-left: 2px; }
/* 台词打字机（js/pet.js typeQuoteIn）：高度锁死一行——空态/打字中/打完零位移，
   角色等下方元素不再被文字出现推挤；nowrap 防折行（折行会把下方顶下一整行），
   超长台词随字号 clamp 自适应窗口，极窄时横向溢出可见不裁字。
   .quote-typing::after 右引号让位闪烁光标（复用 chat/agent welcome-cursor-blink），打完恢复。
   class 名不可用裸 .typing——agent-guide.css 有全局 .typing{display:none} 会把台词整个藏掉 */
.pet-page-quote { height: 1.5em; line-height: 1.5; white-space: nowrap; }
.pet-page-quote.quote-typing::after {
  content: '|';
  color: var(--pet-ink-soft, var(--color-accent));
  margin-left: 2px;
  animation: welcome-cursor-blink 1s step-end infinite;
}
.pet-page-quote-sub {
  font-size: clamp(10px, 1.3vh, 12px);
  color: var(--color-text-muted);
  letter-spacing: 2px;
  margin: 0 0 clamp(6px, 2vh, 26px) 0;
  position: relative;
  z-index: 2;
}

/* 知夏角色舞台 */
.pet-page-zhixia-wrap {
  position: relative;
  z-index: 2;
}
.pet-page-avatar-stage {
  width: clamp(150px, 36vh, 330px);
  height: clamp(150px, 36vh, 330px);
  filter: drop-shadow(0 14px 22px rgba(61, 50, 41, 0.13));
  cursor: pointer;
  transition: transform 0.25s ease;
  overflow: visible;
}
.pet-page-avatar-stage:hover {
  transform: scale(1.035) translateY(-3px);
}
/* ============ Pet 页角色互动分级（对齐浮标 FLOAT-INTERACT WP-R1a） ============ */
/* 翻脸抖毛：左右小幅抖 8 次（0.72s），配合生气情绪与 shiver 动作 */
.pet-page-avatar-stage.pet-flip-shake { animation: pet-flip-shake .09s linear 8; }
@keyframes pet-flip-shake {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-3px); }
  75% { transform: translateX(3px); }
}
/* 长按抱起中：关掉 hover 过渡让跟手上提即时（松手由 JS 清内联 transform 交还过渡） */
.pet-page-avatar-stage.pet-held { transition: none; }
/* 长按松手掉落：下坠触底弹两下渐停（1.1s），配合晕样情绪 */
.pet-page-avatar-stage.pet-drop-bounce { animation: pet-drop-bounce 1.1s cubic-bezier(.3, .7, .4, 1.2); }
@keyframes pet-drop-bounce {
  0% { transform: translateY(0); }
  30% { transform: translateY(6px); }
  50% { transform: translateY(-4px); }
  70% { transform: translateY(2px); }
  100% { transform: translateY(0); }
}
/* v6 引擎 svg 默认按 viewBox 方框裁剪（会切掉弹跳/动作溢出的角色边缘与特效）——与浮标/养成弹窗一致放开 */
.pet-page-avatar-stage svg {
  width: 100%;
  height: 100%;
  display: block;
  overflow: visible;
}
.pet-page-zhixia-shadow {
  width: clamp(120px, 22vh, 210px);
  height: clamp(12px, 2.4vh, 26px);
  margin: clamp(-10px, -1.6vh, -14px) auto 0;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(61, 50, 41, 0.14) 0%, transparent 68%);
}

/* ── 主行：角色居中，食品弧围绕角色两侧（展开时显示） ── */
.pet-page-main-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(40px, 10vw, 120px);
  position: relative;
  z-index: 2;
  width: 100%;
  padding: 0 30px;
  box-sizing: border-box;
  /* 给半径 200px 的弧形食品留出上下空间（角色保持居中）；高度随视口自适应 */
  min-height: clamp(160px, 42vh, 380px);
  /* 舞台撑满视口后吃掉剩余高度，角色始终居中、台词钉在顶部 */
  flex: 1 1 auto;
}

/* 角色两侧食品弧（展开时才显示）：以角色中心为原点，
 * 每个 item 的 left/top 由 js/pet.js renderSnackColumns 按弧计算 */
.pet-page-snack-col {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 0;
  height: 0;
  z-index: 3;
  display: none;
}
.pet-page-snack-col.open {
  display: block;
}

/* 互动按钮（横向排列） */
.pet-stage-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  min-width: 34px;
  padding: 0;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border-strong);
  background: var(--color-surface-elevated);
  box-shadow: var(--shadow-sm);
  cursor: pointer;
  font-family: var(--font-sans);
  color: var(--color-text);
  transition: all 0.18s ease;
}
.pet-stage-btn:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
  border-color: var(--color-primary-light);
}
.pet-stage-btn:active {
  transform: translateY(0);
  box-shadow: var(--shadow-sm);
}
.pet-stage-btn.cooling {
  opacity: 0.4;
  cursor: default;
  pointer-events: none;
}
.pet-stage-btn-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
}
.pet-stage-btn svg {
  display: block;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}
.pet-stage-btn-label,
.pet-stage-btn-count {
  display: none;
}
.pet-stage-btn.t-pet svg { stroke: var(--color-accent); }
.pet-stage-btn.t-play svg { stroke: var(--color-success); }
.pet-stage-btn.t-snack svg { stroke: var(--color-primary); }
.pet-stage-btn.cooling svg { opacity: 0.4; }
.pet-stage-btn-label {
  font-size: 11px;
  letter-spacing: 1px;
  font-weight: 600;
  color: var(--color-text-secondary);
  line-height: 1;
}
.pet-stage-btn-count {
  font-family: var(--font-mono, 'JetBrains Mono', monospace);
  font-size: 10px;
  color: var(--color-text-muted);
  line-height: 1;
}

/* 点心碟展开态 */
.pet-stage-btn.t-snack.active {
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px rgba(201,162,39,.12);
}

/* ── 水平状态条 ── */
.pet-page-bars {
  display: flex;
  flex-direction: column;
  gap: 7px;
  flex: 1;
  max-width: 360px;
}
.pet-bar {
  display: flex;
  align-items: center;
  gap: 9px;
}
.pet-bar-label {
  font-size: 11px;
  letter-spacing: 2px;
  color: var(--color-text-secondary);
  width: 28px;
  flex-shrink: 0;
  text-align: right;
}
.pet-bar-track {
  flex: 1;
  height: 7px;
  border-radius: 4px;
  background: var(--color-border);
  overflow: hidden;
}
.pet-bar-fill {
  height: 100%;
  border-radius: 4px;
  transition: width 0.6s ease;
}
.pet-bar-fill.hunger { background: var(--color-warning); }
.pet-bar-fill.mood { background: var(--color-success); }
.pet-bar-fill.energy { background: var(--color-warning); }
.pet-bar-num {
  font-family: var(--font-mono, 'JetBrains Mono', monospace);
  font-size: 11px;
  color: var(--color-text-muted);
  width: 28px;
  flex-shrink: 0;
}

/* ── 角色两侧食品弧 ── */
.pet-snack-item {
  position: absolute;
  left: 0;
  top: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: clamp(34px, 6vh, 48px);
  height: clamp(34px, 6vh, 48px);
  border-radius: 50%;
  background: var(--color-surface-elevated);
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-sm);
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: var(--font-sans);
  opacity: 0;
  /* translate(-50%,-50%) 让 left/top 落在圆心，scale 做弹入 */
  transform: translate(-50%, -50%) scale(0);
  animation: pet-snack-pop 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}
.pet-snack-item:nth-child(1) { animation-delay: 0s; }
.pet-snack-item:nth-child(2) { animation-delay: 0.04s; }
.pet-snack-item:nth-child(3) { animation-delay: 0.08s; }
.pet-snack-item:nth-child(4) { animation-delay: 0.12s; }
.pet-snack-item:nth-child(5) { animation-delay: 0.16s; }
.pet-snack-item:hover {
  transform: translate(-50%, -50%) scale(1.12) !important;
  border-color: var(--color-accent);
  box-shadow: var(--shadow-md);
}
.pet-snack-item.more {
  border-style: dashed;
  opacity: 0.35;
  cursor: default;
  pointer-events: none;
}
.pet-snack-item-name {
  font-size: 10.5px;
  font-weight: 600;
  color: var(--color-text-secondary);
}
.pet-snack-item-val {
  font-family: var(--font-mono, 'JetBrains Mono', monospace);
  font-size: 9px;
  color: var(--color-warning);
  margin-top: 1px;
}
@keyframes pet-snack-pop {
  from { opacity: 0; transform: translate(-50%, -50%) scale(0); }
  to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

/* 收起态：缩回 + 淡出（与展开 pop 成对），期间不可点 */
.pet-snack-item.closing {
  animation: pet-snack-fold 0.22s cubic-bezier(0.45, 0, 0.9, 0.35) forwards;
  pointer-events: none;
}
@keyframes pet-snack-fold {
  from { opacity: 1; transform: translate(-50%, -50%) scale(1); }
  to { opacity: 0; transform: translate(-50%, -50%) scale(0); }
}

/* ── 互动数值变动浮字（角色头顶：弹跳出现、缓慢上飘淡出） ── */
.pet-stat-float {
  position: fixed;
  z-index: var(--z-modal-over);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  pointer-events: none;
  font-family: var(--font-mono, 'JetBrains Mono', monospace);
  animation: pet-stat-pop 1.8s cubic-bezier(0.22, 1.2, 0.36, 1) forwards;
}
.pet-stat-line {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 1px;
  line-height: 1.2;
  white-space: nowrap;
  text-shadow:
    0 0 6px var(--color-bg, #FFFEF9),
    0 0 14px var(--color-bg, #FFFEF9),
    0 1px 3px rgba(61, 50, 41, 0.15);
}
.pet-stat-line.up { color: var(--color-primary); }
.pet-stat-line.down { color: #B47A64; }
@keyframes pet-stat-pop {
  0% { opacity: 0; transform: translate(-50%, -4px) scale(0.4); }
  24% { opacity: 1; transform: translate(-50%, -14px) scale(1.16); }
  38% { opacity: 1; transform: translate(-50%, -20px) scale(1); }
  60% { opacity: 1; transform: translate(-50%, -26px) scale(1); }
  100% { opacity: 0; transform: translate(-50%, -64px) scale(0.94); }
}

@media (max-width: 768px) {
  #pet-section { padding: 12px 8px 20px; }
  .pet-page-theater { border-radius: var(--radius-lg); }
  .pet-page-head { padding: 14px 18px 0; }
  .pet-page-head-brief { font-size: 9px; letter-spacing: 1px; }
  .pet-page-stage { min-height: clamp(180px, 50vh, 280px); padding: 8px 0 6px; }
  .pet-page-main-row { padding: 0 12px; min-height: clamp(150px, 40vh, 340px); }
  .pet-stage-btn { width: 30px; height: 30px; min-width: 30px; padding: 0; }
  .pet-stage-btn-icon { width: 16px; height: 16px; }
  .pet-stage-btn svg { width: 16px; height: 16px; }
  .pet-page-bars { max-width: 100%; }
  .pet-page-quote { font-size: clamp(14px, 2.2vh, 16px); }
  .pet-page-avatar-stage { width: clamp(110px, 24vh, 150px); height: clamp(110px, 24vh, 150px); }
  .pet-page-zhixia-shadow { width: clamp(90px, 18vh, 120px); height: 14px; margin-top: -10px; }
  .pet-page-glow { left: 50%; width: clamp(200px, 32vh, 280px); height: clamp(120px, 22vh, 160px); }
  .pet-snack-item { width: clamp(30px, 5vh, 38px); height: clamp(30px, 5vh, 38px); }
  .pet-snack-item-name { font-size: 9px; }
  .pet-snack-item-val { font-size: 8px; }
  .pet-page-head { padding: 14px 18px 0; }
  .pet-info-icons { gap: 6px; padding-right: 10px; }
  .pet-stage-btns { gap: 8px; }
  .pet-head-icon { width: 30px; height: 30px; }
  .pet-head-icon svg { width: 16px; height: 16px; }
  .pet-head-icon-tip { font-size: 11px; padding: 6px 8px; }
}

/* ============ ZX04 角色形象定制编辑器（js/pet-appearance.js） ============ */
/* ID 选择器压过 calendar.css 全局 .modal .modal-content 的 max-width:440px 帽 */
#pet-appearance-modal .pet-appearance-content {
  width: min(920px, calc(100vw - 48px));
  max-width: calc(100vw - 24px);
  max-height: min(88vh, 820px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 0;
}
#pet-appearance-body { flex: 1 1 auto; overflow-y: auto; overflow-x: hidden; }
.pet-appearance-body { display: flex; flex-direction: column; }
.pet-appearance-main { display: flex; gap: 20px; padding: 14px 18px 4px; }
.pet-appearance-left { flex: 0 0 200px; display: flex; flex-direction: column; align-items: center; gap: 6px; }
.pet-appearance-preview { width: 186px; height: 186px; }
.pet-appearance-preview svg { width: 100%; height: 100%; display: block; overflow: visible; }
.pet-appearance-hint { font-size: 11px; color: var(--color-text-muted); margin-top: 6px; }
.pet-appearance-emot,
.pet-appearance-acts { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; }
.pet-appearance-right { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 9px; padding-top: 2px; }
.pet-appearance-group { display: flex; gap: 10px; align-items: flex-start; }
/* 62px 容「零件与颜色」五字单行（其余分组二字标签同列对齐）；换行即破打扮间右列版式 */
.pet-appearance-label { flex: 0 0 62px; font-size: 12px; color: var(--color-text-secondary); line-height: 26px; white-space: nowrap; }
.pet-appearance-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.pet-ap-chip { height: 26px; padding: 0 11px; border-radius: var(--radius-full); border: 1px solid var(--color-border); background: var(--color-surface-elevated); color: var(--color-text); font-size: 12px; cursor: pointer; transition: border-color .15s, background .15s; }
.pet-ap-chip:hover { border-color: var(--color-primary); }
.pet-ap-chip.active { background: var(--color-primary); border-color: var(--color-primary); color: #fff; }
.pet-ap-swatches { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.pet-ap-swatch { width: 26px; height: 26px; border-radius: 50%; border: 2px solid var(--color-border-strong); cursor: pointer; padding: 0; }
.pet-ap-swatch.active { border-color: var(--color-primary); box-shadow: 0 0 0 2px var(--color-surface-elevated) inset; }
.pet-ap-color-input { width: 46px; height: 26px; padding: 0; border: 1px solid var(--color-border); border-radius: 6px; background: none; cursor: pointer; }
.pet-appearance-foot { display: flex; gap: 10px; justify-content: flex-end; padding: 10px 18px 16px; }
.pet-ap-btn { height: 32px; padding: 0 16px; border-radius: var(--radius-md); border: 1px solid var(--color-border); background: var(--color-surface-elevated); color: var(--color-text); font-size: 13px; cursor: pointer; }
.pet-ap-btn:hover { border-color: var(--color-primary); }
.pet-ap-btn.primary { background: var(--color-primary); border-color: var(--color-primary); color: #fff; }

@media (max-width: 768px) {
  .pet-appearance-main { flex-direction: column; align-items: center; }
  .pet-appearance-left { flex-basis: auto; }
}

/* ════════════════════════════════════════════════════════════════
   PET-GACHA WP-G4a：养成页潦草风重皮肤（覆盖上方现代 UI 皮）
   五铁律：墨色只用 INK #4B3A2F / 填色奶油治愈系 / 装饰线一律
   zx.sketch 现画（js/pet-doodle.js）/ 歪圆角+贴纸微旋 / 楷体标题台词
   ════════════════════════════════════════════════════════════════ */
#pet-section {
  --pet-ink: #4B3A2F;                    /* 全页唯一墨色，禁纯黑 */
  --pet-ink-soft: rgba(75, 58, 47, 0.55);
  --pet-paper: #FFF5E9;                 /* 暖纸底 */
  --pet-cream: #FFF8EC;                 /* 暖白 */
  --pet-peach: #F7DCC4;                 /* 蜜桃 */
  --pet-blush: #F4B8C5;                 /* 腮红粉 */
  --pet-sage: #D6EBE2;                  /* 低饱和蓝绿 */
  --pet-kai: "Kaiti SC", "Kaiti", "楷体", "STKaiti", serif;
  --pet-radius-doodle: 255px 15px 225px 15px / 15px 225px 15px 255px;
  --pet-radius-doodle2: 15px 225px 15px 255px / 255px 15px 225px 15px 255px;
}

/* 速写本纸：方格淡网格 + 歪圆角 + 轻「纸片浮起」影 */
.pet-page-theater {
  background: var(--pet-grid-page);
  background-size: 26px 26px, 26px 26px, auto;
  border: 2px solid var(--pet-ink);
  border-radius: var(--pet-radius-doodle);
  box-shadow: 3px 4px 0 rgba(75, 58, 47, 0.12);   /* 只许纸片轻投影 */
}

/* pet 系弹窗外壳统一铺格子纸（原仅手册/图鉴滚动区有格子，外壳与标题区是暖白 surface，
 * 格子后一圈暖白割裂——用户 2026-08-31 手测反馈；养成面板与打扮间共用 pet-modal-content） */
#pet-modal .modal-content.pet-modal-content,
#pet-manual-modal .pet-manual-content,
#pet-dex-modal .pet-dex-content,
#pet-card-modal .pet-card-content,
#pet-appearance-modal .pet-appearance-content {
  background: var(--pet-grid-modal);
  background-size: 22px 22px, 22px 22px, auto;
}
/* 外壳已铺格子，body 再叠一层同规格格线会错位变脏——撤掉只透出外壳纸 */
.pet-manual-body,
.pet-dex-body {
  background: none;
}

/* ── 页头：楷体 + 硬币徽章贴纸化 ── */
.pet-page-head-brief {
  font-family: var(--pet-kai);
  color: var(--pet-ink-soft);
}
.pet-page-coins {
  font-family: var(--pet-kai);
  color: var(--pet-ink);
  background: var(--pet-cream);
  border: 2px solid var(--pet-ink);
  border-radius: var(--pet-radius-doodle2);
  box-shadow: 2px 2px 0 rgba(75, 58, 47, 0.14);
  transform: rotate(-2deg);
}

/* ── 左右两栏：左舞台 / 右扭蛋机占位 ── */
.pet-page-body {
  display: flex;
  align-items: stretch;
  gap: 14px;
  padding: 0 22px;
  flex: 1 1 auto;
  min-height: 0;
}
.pet-page-left {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.pet-gacha-slot {
  flex: 0 0 clamp(190px, 22vw, 280px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 10px;
  border: 2px dashed var(--pet-ink-soft);
  border-radius: var(--pet-radius-doodle2);
  background: rgba(255, 248, 236, 0.6);
  transform: rotate(0.8deg);
  margin: 6px 0;
}
.pet-gacha-slot-svg {
  width: min(100%, 230px);
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  align-items: center;
}
.pet-gacha-slot-svg svg { max-height: 100%; }
.pet-gacha-slot-note {
  font-family: var(--pet-kai);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 3px;
  color: var(--pet-ink);
  text-align: center;
  margin: 0;
}
.pet-gacha-slot-note span {
  display: block;
  font-size: 10.5px;
  font-weight: 400;
  color: var(--pet-ink-soft);
  letter-spacing: 2px;
  margin-top: 3px;
}

/* ── 装饰层（pet-doodle.js 现画进来的星星/胶带/箭头） ── */
.pet-doodle-deco {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
}
.pet-doodle-deco .pet-doodle-item {
  position: absolute;
  width: 30px;
  height: 30px;
}
.pet-doodle-deco .pet-doodle-item svg { width: 100%; height: 100%; overflow: visible; }

/* ── 台词：楷体，与角色同一支笔的世界 ── */
.pet-page-quote,
.pet-page-quote::before,
.pet-page-quote::after {
  font-family: var(--pet-kai);
  color: var(--pet-ink);
}
.pet-page-quote::before, .pet-page-quote::after { color: var(--pet-ink-soft); }
.pet-page-quote-sub {
  font-family: var(--pet-kai);
  color: var(--pet-ink-soft);
  letter-spacing: 3px;
}

/* ── 互动/头信息按钮 → 手绘贴纸按钮（歪圆角 + 2px 墨边 + 微旋） ── */
.pet-stage-btn,
.pet-head-icon {
  border: 2px solid var(--pet-ink);
  border-radius: var(--pet-radius-doodle2);
  background: var(--pet-cream);
  color: var(--pet-ink);
  box-shadow: 2px 2px 0 rgba(75, 58, 47, 0.14);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.pet-stage-btn:nth-child(odd),
.pet-head-icon:nth-child(odd) { transform: rotate(-2deg); }
.pet-stage-btn:nth-child(even),
.pet-head-icon:nth-child(even) { transform: rotate(1.6deg); }
.pet-stage-btn:hover,
.pet-head-icon:hover {
  transform: translateY(-2px) rotate(0deg);
  border-color: var(--pet-ink);
  color: var(--pet-ink);
  box-shadow: 3px 4px 0 rgba(75, 58, 47, 0.18);
}
/* 图标一律走 INK（铁律①：图标不抢角色的戏） */
.pet-stage-btn svg, .pet-head-icon svg { stroke: var(--pet-ink); }
.pet-head-icon.t-level, .pet-head-icon.t-bond, .pet-head-icon.t-attrs,
.pet-head-icon.t-history, .pet-head-icon .level-ring-fill { color: var(--pet-ink); stroke: var(--pet-ink); }
.pet-head-icon .level-ring-track { stroke: rgba(75, 58, 47, 0.18); }
.pet-stage-btn.t-pet svg, .pet-stage-btn.t-play svg, .pet-stage-btn.t-snack svg { stroke: var(--pet-ink); }
.pet-stage-btn.t-snack.active {
  border-color: var(--pet-ink);
  box-shadow: 2px 2px 0 var(--pet-ink-soft), 3px 4px 0 rgba(75, 58, 47, 0.18);
}
.pet-info-icons { border-right: 1px dashed var(--pet-ink-soft); }
/* tooltip 提示改为纸片风 */
.pet-head-icon-tip {
  background: var(--pet-cream);
  color: var(--pet-ink);
  border: 2px solid var(--pet-ink);
  border-radius: 12px 4px 12px 4px / 4px 12px 4px 12px;
  box-shadow: 2px 2px 0 rgba(75, 58, 47, 0.14);
  font-family: var(--pet-kai);
}
.pet-head-icon-tip::after { border-top-color: var(--pet-ink); }

/* ── 数值条：蜡笔感（奶油轨道 + 治愈系填色 + 歪圆角） ── */
.pet-page-bars { max-width: 420px; }
.pet-bar-label {
  font-family: var(--pet-kai);
  color: var(--pet-ink);
  width: 34px;
}
.pet-bar-track {
  height: 9px;
  border: 1.5px solid var(--pet-ink);
  border-radius: 7px 3px 8px 4px / 4px 8px 3px 7px;
  background: var(--pet-cream);
}
.pet-bar-fill { border-radius: 6px 2px 7px 3px / 3px 7px 2px 6px; }
.pet-bar-fill.hunger { background: var(--pet-peach); }
.pet-bar-fill.mood { background: var(--pet-blush); }
.pet-bar-fill.energy { background: var(--pet-sage); }
.pet-bar-num {
  font-family: var(--pet-kai);
  color: var(--pet-ink);
}

/* ── 点心碟贴纸：墨边歪圆 ── */
.pet-snack-item {
  background: var(--pet-cream);
  border: 2px solid var(--pet-ink);
  box-shadow: 2px 2px 0 rgba(75, 58, 47, 0.14);
}
.pet-snack-item-name, .pet-snack-item-val { color: var(--pet-ink); font-family: var(--pet-kai); }
.pet-snack-item.more { border-style: dashed; border-color: var(--pet-ink-soft); }

/* ── 768 响应式：舞台→状态槽/扭蛋机 竖排 ── */
@media (max-width: 768px) {
  /* 三块竖排后内容高过视口：放开「全高沉浸禁滚动」锁，改自然文档流滚动，防状态槽与按钮行重叠 */
  body.pet-module-active .main-content { height: auto; overflow: visible; }
  #pet-section { min-height: 0; }
  .pet-page-theater { min-height: 0; max-height: none; }
  .pet-page-body { flex-direction: column; flex: none; padding: 0 12px; gap: 10px; }
  .pet-page-left { order: 1; }
  .pet-gacha-slot { order: 2; }
  .pet-status-slot {
    order: 3;
    flex: none;
    width: 100%;
    gap: 9px;
    padding: 10px 14px;
    transform: rotate(-0.4deg);
  }
  /* 手机竖排恢复全宽：居中收窄只属于桌面高舞台的排版 */
  .pet-status-slot,
  .pet-gacha-slot { align-self: stretch; }
  .pet-status-slot .pet-page-bars { gap: 8px; }
  .pet-gacha-slot {
    flex: none;
    flex-direction: row;
    gap: 14px;
    padding: 10px 14px;
    transform: rotate(-0.6deg);
  }
  .pet-gacha-slot-svg { width: 120px; flex: none; height: 150px; }
  .pet-gacha-slot-note { text-align: left; }
}

/* ════════════════════════════════════════════════════════════════
   PET-GACHA WP-G4b：饲养手册 + 手绘名牌（延续 G4a 潦草皮肤变量）
   ════════════════════════════════════════════════════════════════ */

/* ── 小扳手贴纸入口（页头，与硬币徽章同排） ── */
.pet-manual-btn {
  margin-left: 10px;
  width: 30px;
  height: 30px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--pet-cream, #FFF8EC);
  border: 2px solid var(--pet-ink, #4B3A2F);
  border-radius: var(--pet-radius-doodle2, 15px 225px 15px 255px / 255px 15px 225px 15px);
  color: var(--pet-ink, #4B3A2F);
  box-shadow: 2px 2px 0 rgba(75, 58, 47, 0.14);
  transform: rotate(2deg);
  cursor: pointer;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.pet-manual-btn:hover {
  transform: translateY(-2px) rotate(0deg);
  box-shadow: 3px 4px 0 rgba(75, 58, 47, 0.18);
}
.pet-manual-btn svg { width: 16px; height: 16px; display: block; }

/* ── 手绘名牌（角色脚下，楷体小木牌感） ── */
.pet-nameplate {
  font-family: var(--pet-kai, "Kaiti SC", "Kaiti", "楷体", serif);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 2px;
  color: var(--pet-ink, #4B3A2F);
  background: var(--pet-cream, #FFF8EC);
  border: 2px solid var(--pet-ink, #4B3A2F);
  border-radius: 12px 4px 14px 5px / 5px 14px 4px 12px;
  box-shadow: 2px 2px 0 rgba(75, 58, 47, 0.14);
  padding: 2px 14px;
  margin: 10px auto 0;
  width: fit-content;
  max-width: 90%;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transform: rotate(-1.5deg);
  cursor: default;
  font-variant-numeric: tabular-nums;
}

/* ── 饲养手册弹窗：潦草纸质手册 ── */
#pet-manual-modal .pet-manual-content {
  width: min(640px, calc(100vw - 48px));
  max-width: calc(100vw - 24px);
  max-height: min(85vh, 760px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.pet-manual-body {
  flex: 1 1 auto;
  overflow-y: auto;
  overflow-x: hidden;
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 14px 18px 18px;
  /* 格子底统一由弹窗外壳铺（见 --pet-grid-modal），此处透出即可 */
}
.pet-manual-card {
  border: 2px solid #4B3A2F;
  border-radius: 255px 15px 225px 15px / 15px 225px 15px 255px;
  background: #FFF8EC;
  box-shadow: 2px 2px 0 rgba(75, 58, 47, 0.14);
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.pet-manual-card:nth-child(even) { transform: rotate(0.5deg); }
.pet-manual-card:nth-child(odd) { transform: rotate(-0.5deg); }
.pet-manual-card-title {
  font-family: "Kaiti SC", "Kaiti", "楷体", serif;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 3px;
  color: #4B3A2F;
}
.pet-manual-card-desc, .pet-manual-card-note {
  font-size: 12px;
  line-height: 1.7;
  color: rgba(75, 58, 47, 0.75);
  margin: 0;
}
.pet-manual-card-note { font-size: 11px; color: rgba(75, 58, 47, 0.55); }
.pet-manual-recipe {
  font-family: "Kaiti SC", "Kaiti", "楷体", serif;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 1px;
  color: #4B3A2F;
  margin: 0;
}
.pet-manual-card button {
  align-self: flex-start;
  font-family: "Kaiti SC", "Kaiti", "楷体", serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 2px;
  color: #4B3A2F;
  background: #F7DCC4;
  border: 2px solid #4B3A2F;
  border-radius: 15px 225px 15px 255px / 255px 15px 225px 15px;
  box-shadow: 2px 2px 0 rgba(75, 58, 47, 0.14);
  padding: 4px 16px;
  cursor: pointer;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.pet-manual-card button:hover {
  transform: translateY(-2px);
  box-shadow: 3px 4px 0 rgba(75, 58, 47, 0.18);
}
.pet-manual-card-row {
  display: flex;
  gap: 10px;
  align-items: center;
}
.pet-manual-card-row input {
  flex: 1;
  min-width: 0;
  font-family: "Kaiti SC", "Kaiti", "楷体", serif;
  font-size: 14px;
  color: #4B3A2F;
  background: #FFFDF8;
  border: 2px solid #4B3A2F;
  border-radius: 10px 4px 12px 5px / 5px 12px 4px 10px;
  padding: 5px 10px;
  outline: none;
}
.pet-manual-card-row input:focus { box-shadow: 0 0 0 3px rgba(244, 184, 197, 0.45); }

/* ── 硬币账本卡（PET-TALK WP-R3b：余额大字 + 最近流水倒序 10 条） ── */
.pet-manual-coin-balance {
  margin: 0;
  display: flex;
  align-items: baseline;
  gap: 6px;
  font-family: "Kaiti SC", "Kaiti", "楷体", serif;
  color: #4B3A2F;
}
.pet-manual-coin-balance > span:first-child { font-size: 26px; font-weight: 700; line-height: 1.1; }
.pet-manual-coin-unit { font-size: 12px; color: rgba(75, 58, 47, 0.6); }
.pet-manual-coin-log {
  margin: 0;
  padding: 6px 10px;
  list-style: none;
  background: #FFFDF8;
  border: 2px solid #4B3A2F;
  border-radius: 12px 5px 14px 6px / 6px 14px 5px 12px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  max-height: 176px;
  overflow-y: auto;
}
.pet-coin-row {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  line-height: 1.8;
  color: rgba(75, 58, 47, 0.85);
}
.pet-coin-time { flex: 0 0 auto; color: rgba(75, 58, 47, 0.5); font-size: 11px; }
.pet-coin-from { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pet-coin-delta { flex: 0 0 auto; font-weight: 700; }
.pet-coin-delta.plus { color: #B07A2A; }
.pet-coin-delta.minus { color: rgba(75, 58, 47, 0.65); }
.pet-coin-empty { font-size: 12px; line-height: 1.8; color: rgba(75, 58, 47, 0.5); }

@media (max-width: 768px) {
  .pet-nameplate { font-size: 11.5px; letter-spacing: 1px; }
  .pet-manual-body { padding: 10px 12px 14px; }
}

/* ════════════════════════════════════════════════════════════════
   PET-GACHA WP-G5a：命运扭蛋机 + 配方卡 + 图鉴（延续 G4a 皮肤变量）
   ════════════════════════════════════════════════════════════════ */

/* ── 扭蛋机槽位改容器：机身 + 掉蛋层 + 按钮行 ── */
.pet-gacha-slot {
  position: relative;
  justify-content: center;
  /* 格子窗撑满一屏后，虚框只取内容自高、在行内垂直居中，不跟着舞台拉长（2026-09-01 用户反馈） */
  align-self: center;
}
.pet-gacha-machine {
  width: min(100%, 210px);
  flex: 1 1 auto;
  min-height: 120px;
  display: flex;
  align-items: center;
  overflow: visible;
}
.pet-gacha-machine svg { max-height: 100%; }

/* ── 左侧状态槽：与扭蛋机同款虚框，专门放饱食/心情/精力（原底部行被互动按钮挤没，2026-09-01 用户反馈挪位） ── */
.pet-status-slot {
  flex: 0 0 clamp(170px, 17vw, 215px);
  align-self: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-evenly;
  gap: 14px;
  padding: 14px 12px;
  border: 2px dashed var(--pet-ink-soft);
  border-radius: var(--pet-radius-doodle2);
  background: rgba(255, 248, 236, 0.6);
  transform: rotate(-0.8deg);
  margin: 6px 0;
}
.pet-status-slot-note {
  font-family: var(--pet-kai);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 3px;
  color: var(--pet-ink);
  margin: 0;
}
.pet-status-slot .pet-page-bars {
  max-width: none;
  width: 100%;
  flex: none;
  gap: 12px;
}
/* 槽内按钮区：上四下四工整网格（2026-09-01 用户反馈）——
 * 上排 抚摸/玩耍/点心碟/打扮（动作），下排 等级/羁绊/五维/成长史（查看） */
.pet-slot-btns {
  display: grid;
  grid-template-columns: repeat(4, auto);
  justify-content: center;
  column-gap: 10px;
  row-gap: 16px;
  width: 100%;
  padding-top: 12px;
  border-top: 1px dashed var(--pet-ink-soft);
}
/* 两个容器只当渲染挂点，八颗按钮直接进网格摊 4+4 */
.pet-slot-btns > .pet-stage-btns,
.pet-slot-btns > .pet-info-icons { display: contents; }
/* 网格排序：动作排在前，打扮提到上排末位 */
.pet-slot-btns .t-appearance { order: 4; }
.pet-slot-btns .t-level     { order: 5; }
.pet-slot-btns .t-bond      { order: 6; }
.pet-slot-btns .t-attrs     { order: 7; }
.pet-slot-btns .t-history   { order: 8; }
/* 八颗统一 32px 方贴纸，两排等大才工整 */
.pet-status-slot .pet-stage-btn { width: 32px; height: 32px; min-width: 32px; }
.pet-status-slot .pet-stage-btn svg { width: 16px; height: 16px; }
.pet-status-slot .pet-head-icon { width: 32px; height: 32px; }
.pet-status-slot .pet-head-icon svg { width: 16px; height: 16px; }
/* 窄窗档：槽固定 190px，4 列网格（4×32+3×10=158）仍放得下 */
@media (max-width: 1100px) {
  .pet-status-slot { flex-basis: 190px; }
}

/* 蛋群：待机慢滚；抽蛋加速翻滚 */
#g-eggs { transform-origin: 50% 62px; animation: g-eggs-idle 9s linear infinite; }
.pet-gacha-machine.spinning #g-eggs { animation: g-eggs-fast 0.5s linear infinite; }
#g-handle { transform-origin: 186px 122px; }
.pet-gacha-machine.spinning #g-handle { animation: g-handle-crank 0.55s cubic-bezier(0.4, 0, 0.6, 1) infinite; }
@keyframes g-eggs-idle { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes g-eggs-fast { from { transform: rotate(0deg) scale(1.04); } to { transform: rotate(360deg) scale(1.04); } }
@keyframes g-handle-crank { 0% { transform: rotate(0deg); } 55% { transform: rotate(-58deg); } 100% { transform: rotate(0deg); } }

/* 掉蛋动画层：盖在取蛋口上方 */
.pet-gacha-egg-layer { position: absolute; inset: 0; pointer-events: none; z-index: 3; }
.pet-gacha-egg {
  position: absolute;
  left: 50%;
  top: 6%;
  width: 54px;
  height: 62px;
  transform: translateX(-50%) scale(0);
  transform-origin: center;
}
.pet-gacha-egg.drop { animation: g-egg-drop 0.9s cubic-bezier(0.3, 0.9, 0.4, 1) forwards; }
.pet-gacha-egg.crack { animation: g-egg-crack 0.45s ease-in forwards; }
@keyframes g-egg-drop {
  0%   { transform: translateX(-50%) scale(0.1); opacity: 0; }
  18%  { opacity: 1; }
  62%  { transform: translateX(-50%) translateY(38%) scale(1); }
  78%  { transform: translateX(-50%) translateY(30%) scale(1, 0.86); }
  90%  { transform: translateX(-50%) translateY(38%) scale(1); }
  100% { transform: translateX(-50%) translateY(36%) scale(1); opacity: 1; }
}
@keyframes g-egg-crack {
  0%   { transform: translateX(-50%) translateY(36%) rotate(0deg); }
  25%  { transform: translateX(-50%) translateY(36%) rotate(-7deg); }
  50%  { transform: translateX(-50%) translateY(36%) rotate(6deg); }
  75%  { transform: translateX(-50%) translateY(36%) rotate(-4deg) scale(1.06); }
  100% { transform: translateX(-50%) translateY(36%) rotate(0deg) scale(1.35); opacity: 0; }
}

/* ── 按钮行：转一圈 + 图鉴（贴纸风） ── */
.pet-gacha-actions {
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: center;
  padding-top: 10px;
}
.pet-gacha-draw-btn, .pet-dex-btn {
  font-family: "Kaiti SC", "Kaiti", "楷体", serif;
  font-weight: 700;
  letter-spacing: 2px;
  color: #4B3A2F;
  background: #F7DCC4;
  border: 2px solid #4B3A2F;
  border-radius: 15px 225px 15px 255px / 255px 15px 225px 15px;
  box-shadow: 2px 2px 0 rgba(75, 58, 47, 0.14);
  cursor: pointer;
  padding: 7px 18px;
  font-size: 14px;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.pet-dex-btn {
  font-size: 12px;
  padding: 5px 13px;
  background: #FFF8EC;
  transform: rotate(1.5deg);
}
.pet-gacha-draw-btn { transform: rotate(-1.5deg); }
.pet-gacha-draw-btn:hover:not(:disabled), .pet-dex-btn:hover {
  transform: translateY(-2px) rotate(0deg);
  box-shadow: 3px 4px 0 rgba(75, 58, 47, 0.18);
}
.pet-gacha-draw-btn:disabled, .pet-gacha-draw-btn.busy {
  opacity: 0.55;
  cursor: default;
  pointer-events: none;
}
.pet-gacha-cost {
  display: inline-block;
  margin-left: 7px;
  font-size: 10.5px;
  font-weight: 400;
  letter-spacing: 1px;
  color: rgba(75, 58, 47, 0.7);
}

/* ── 配方卡：宝丽来风 ── */
#pet-card-modal .pet-card-content { width: min(440px, calc(100vw - 48px)); max-width: calc(100vw - 24px); }
.pet-card-polaroid {
  position: relative;
  background: #FFFDF6;
  border: 2px solid #4B3A2F;
  border-radius: 10px 14px 8px 16px / 14px 8px 16px 10px;
  box-shadow: 4px 5px 0 rgba(75, 58, 47, 0.16);
  padding: 14px 14px 12px;
  transform: rotate(-1.2deg);
}
.pet-card-stage {
  width: 100%;
  aspect-ratio: 5 / 4;
  background:
    linear-gradient(rgba(75, 58, 47, 0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(75, 58, 47, 0.045) 1px, transparent 1px),
    #FFF5E9;
  background-size: 22px 22px, 22px 22px, auto;
  border: 1.5px solid rgba(75, 58, 47, 0.5);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.pet-card-stage svg { width: 78%; height: 78%; overflow: visible; }
.pet-card-meta { padding: 10px 2px 0; }
.pet-card-no {
  font-family: "Kaiti SC", "Kaiti", "楷体", serif;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 2px;
  color: #4B3A2F;
  margin: 0 0 4px;
  font-variant-numeric: tabular-nums;
}
.pet-card-labels {
  font-family: "Kaiti SC", "Kaiti", "楷体", serif;
  font-size: 12.5px;
  color: rgba(75, 58, 47, 0.8);
  letter-spacing: 1px;
  margin: 0;
  line-height: 1.7;
}
/* 印章：歪斜楷体方章（本命金 / 限定粉） */
.pet-card-stamp {
  position: absolute;
  right: 12px;
  top: 10px;
  font-family: "Kaiti SC", "Kaiti", "楷体", serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 3px;
  padding: 4px 8px;
  border: 2.5px solid currentColor;
  border-radius: 6px 3px 7px 4px / 4px 7px 3px 6px;
  transform: rotate(12deg);
  opacity: 0.9;
  pointer-events: none;
}
.pet-card-stamp.soul { color: #C99124; }
.pet-card-stamp.limited { color: #D2748A; right: auto; left: 12px; transform: rotate(-10deg); }
.pet-card-btns {
  display: flex;
  gap: 10px;
  justify-content: center;
  margin-top: 16px;
}
.pet-card-btns button {
  font-family: "Kaiti SC", "Kaiti", "楷体", serif;
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: 2px;
  color: #4B3A2F;
  border: 2px solid #4B3A2F;
  border-radius: 15px 225px 15px 255px / 255px 15px 225px 15px;
  box-shadow: 2px 2px 0 rgba(75, 58, 47, 0.14);
  cursor: pointer;
  padding: 6px 16px;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.pet-card-btns button:hover { transform: translateY(-2px); box-shadow: 3px 4px 0 rgba(75, 58, 47, 0.18); }
.pet-card-btns .t-accept { background: #F7DCC4; transform: rotate(-1.5deg); }
.pet-card-btns .t-again { background: #FFF8EC; }
.pet-card-btns .t-discard { background: #FFF8EC; font-weight: 400; opacity: 0.75; }

/* ── 图鉴贴纸墙 ── */
#pet-dex-modal .pet-dex-content {
  width: min(720px, calc(100vw - 48px));
  max-width: calc(100vw - 24px);
  max-height: min(85vh, 780px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.pet-dex-progress { flex: 0 0 auto; }
.pet-dex-progress {
  font-family: "Kaiti SC", "Kaiti", "楷体", serif;
  font-size: 12px;
  letter-spacing: 2px;
  color: rgba(75, 58, 47, 0.75);
  margin: 0;
  padding: 8px 18px 0;
}
.pet-dex-body {
  flex: 1 1 auto;
  overflow-y: auto;
  overflow-x: hidden;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 12px 18px 18px;
  /* 格子底统一由弹窗外壳铺（见 --pet-grid-modal），此处透出即可 */
}
.pet-dex-group-label {
  font-family: "Kaiti SC", "Kaiti", "楷体", serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 3px;
  color: #4B3A2F;
  margin-bottom: 6px;
}
.pet-dex-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.pet-dex-cell {
  min-width: 74px;
  min-height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 4px 8px;
  background: #FFF8EC;
  border: 2px solid rgba(75, 58, 47, 0.35);
  border-radius: 12px 4px 14px 5px / 5px 14px 4px 12px;
  font-family: "Kaiti SC", "Kaiti", "楷体", serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1px;
  color: #4B3A2F;
}
.pet-dex-cell:nth-child(odd) { transform: rotate(-1deg); }
.pet-dex-cell:nth-child(even) { transform: rotate(0.8deg); }
.pet-dex-cell.lit {
  border-color: #4B3A2F;
  border-style: solid;
  box-shadow: 2px 2px 0 rgba(75, 58, 47, 0.12);
  background: #FDF3E3;
}
.pet-dex-cell .pet-dex-unknown { width: 34px; height: 40px; opacity: 0.6; }

/* ══ PET-TALK WP-R3c：图鉴印章页（歪圆印面格子 + 印泥暖赭红点缀） ══ */
.pet-dex-stamps-group {
  margin-top: 16px;
  padding-top: 12px;
  border-top: 2px dashed rgba(75, 58, 47, 0.25);
}
.pet-stamps-grid { gap: 10px; }
.pet-stamp-cell {
  width: 86px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  padding: 8px 4px 6px;
  background: #FFF8EC;
  border: 2px solid rgba(75, 58, 47, 0.3);
  border-radius: 46% 54% 50% 50% / 52% 48% 54% 46%;
  font-family: "Kaiti SC", "Kaiti", "楷体", serif;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 1px;
  color: #4B3A2F;
}
.pet-stamp-cell:nth-child(odd) { transform: rotate(-1.6deg); }
.pet-stamp-cell:nth-child(even) { transform: rotate(1.2deg); }
.pet-stamp-cell .pet-stamp-seal { width: 46px; height: 46px; }
.pet-stamp-cell .pet-stamp-date {
  font-size: 9px;
  font-weight: 400;
  letter-spacing: 0;
  color: rgba(75, 58, 47, 0.55);
}
.pet-stamp-cell.lit {
  border-color: #B4543F;
  background: #FDF3E3;
  box-shadow: 2px 2px 0 rgba(180, 84, 63, 0.16);
}
.pet-stamp-cell:not(.lit) { opacity: 0.68; }
.pet-stamp-cell:not(.lit) .pet-stamp-name { color: rgba(75, 58, 47, 0.5); }

/* ── 768 响应式 ── */
@media (max-width: 768px) {
  .pet-gacha-slot { flex-direction: column; }
  .pet-gacha-machine { width: 150px; flex: none; height: 180px; }
  .pet-gacha-egg { width: 42px; height: 48px; }
  .pet-dex-cell { min-width: 62px; min-height: 44px; font-size: 11px; }
}

/* ════════════════════════════════════════════════════════════════
   PET-GACHA WP-G5b：打扮间（滑条摆位 UI）
   ════════════════════════════════════════════════════════════════ */
.pet-appearance-preview { cursor: default; }
.pet-appearance-lock-note {
  font-family: 'Kaiti SC', 'Kaiti', '楷体', serif;
  font-size: 12px;
  line-height: 1.8;
  color: rgba(75, 58, 47, 0.72);
}
.pet-ap-sliders .pet-appearance-label { line-height: 22px; }
.pet-ap-slider-box { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.pet-ap-slider-row { display: flex; align-items: center; gap: 8px; }
.pet-ap-slider-name { flex: 0 0 28px; font-size: 11px; color: rgba(75, 58, 47, 0.72); }
.pet-ap-slider {
  flex: 1 1 auto; min-width: 0; height: 18px; margin: 0;
  accent-color: #C77B54;
  cursor: pointer;
}
.pet-ap-slider-val {
  flex: 0 0 40px; text-align: right;
  font-family: 'JetBrains Mono', monospace, 'Kaiti SC', '楷体', serif;
  font-size: 11px; color: rgba(75, 58, 47, 0.6);
}
.pet-ap-slider-reset {
  align-self: flex-end; height: 20px; padding: 0 9px; margin-top: 1px;
  border: 1px solid rgba(75, 58, 47, 0.35); border-radius: var(--radius-full);
  background: transparent; color: rgba(75, 58, 47, 0.75);
  font-size: 11px; cursor: pointer;
}
.pet-ap-slider-reset:hover { border-color: #C77B54; color: #C77B54; }

/* ════════════════════════════════════════════════════════════════
   FLOAT-INTERACT WP-R1c：饲养手册·浮标互动开关行
   ════════════════════════════════════════════════════════════════ */
.pet-manual-toggles { display: flex; flex-direction: column; gap: 6px; }
.pet-manual-toggle {
  display: flex; align-items: center; gap: 8px;
  font-size: 12px; color: rgba(75, 58, 47, 0.85);
  cursor: pointer; user-select: none;
}
.pet-manual-toggle input { width: 15px; height: 15px; accent-color: #C77B54; cursor: pointer; }
.pet-manual-toggle:hover span { color: #C77B54; }

/* ════════════════════════════════════════════════════════════════
   PET-SPONSOR：支持开发者（爱心入口 + 赞助面板 + 收款码弹窗 + 光环）
   ════════════════════════════════════════════════════════════════ */

/* ── 爱心贴纸入口（页头，与小扳手同排同皮肤） ── */
.pet-sponsor-btn {
  margin-left: 8px;
  width: 30px;
  height: 30px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--pet-cream, #FFF8EC);
  border: 2px solid var(--pet-ink, #4B3A2F);
  border-radius: var(--pet-radius-doodle2, 255px 15px 225px 15px / 15px 255px 15px 225px);
  color: #D46A6A;
  box-shadow: 2px 2px 0 rgba(75, 58, 47, 0.14);
  transform: rotate(-2deg);
  cursor: pointer;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.pet-sponsor-btn:hover {
  transform: translateY(-2px) rotate(0deg);
  box-shadow: 3px 4px 0 rgba(75, 58, 47, 0.18);
}
.pet-sponsor-btn svg { width: 16px; height: 16px; display: block; }

/* ── 赞助面板 ── */
#pet-sponsor-modal .pet-sponsor-content {
  width: min(560px, calc(100vw - 48px));
  max-width: calc(100vw - 24px);
  max-height: calc(100vh - 48px);
  overflow-y: auto;
  background: var(--pet-paper, #FDF6E9);
  border: 2px solid var(--pet-ink, #4B3A2F);
  border-radius: 18px 6px 16px 8px / 8px 16px 6px 18px;
  box-shadow: 4px 5px 0 rgba(75, 58, 47, 0.16);
  padding: 18px 22px 20px;
}
.pet-sponsor-content .pet-sponsor-lead {
  margin: 4px 0 10px;
  font-size: 11px;
  line-height: 1.6;
  font-style: normal;
  color: rgba(75, 58, 47, 0.68);
}
.pet-sponsor-steps {
  margin: 0 0 12px;
  padding: 8px 8px 8px 22px;
  font-size: 12px;
  line-height: 2;
  color: rgba(75, 58, 47, 0.85);
  background: rgba(255, 248, 236, 0.7);
  border: 1.5px dashed rgba(75, 58, 47, 0.35);
  border-radius: 10px;
}
.pet-sponsor-steps b { color: #C77B54; }

/* ── 档位四宫格 ── */
.pet-sponsor-tiers {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}
.pet-sponsor-tier {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
  padding: 10px 34px 10px 12px;
  background: #FFFDF6;
  border: 2px solid var(--pet-ink, #4B3A2F);
  border-radius: 12px 5px 13px 6px / 6px 13px 5px 12px;
  box-shadow: 2px 2px 0 rgba(75, 58, 47, 0.12);
  cursor: pointer;
  text-align: left;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.pet-sponsor-tier:hover {
  transform: translateY(-2px);
  box-shadow: 3px 4px 0 rgba(75, 58, 47, 0.16);
}
.pet-sponsor-tier-name { font-size: 14px; font-weight: 700; color: var(--pet-ink, #4B3A2F); }
/* 价格贴纸：右上角悬出小纸片（潦草皮肤同款歪角） */
.pet-sponsor-tier-price {
  position: absolute;
  top: -8px;
  right: -6px;
  padding: 3px 10px;
  font-size: 13px;
  font-weight: 700;
  color: #FFF8EC;
  background: #C77B54;
  border: 2px solid var(--pet-ink, #4B3A2F);
  border-radius: 9px 3px 10px 4px / 4px 10px 3px 9px;
  box-shadow: 2px 2px 0 rgba(75, 58, 47, 0.18);
  transform: rotate(3deg);
}
.pet-sponsor-tier-reward { font-size: 11.5px; line-height: 1.6; color: rgba(75, 58, 47, 0.75); }

/* ── 申请码行 ── */
.pet-sponsor-uid-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}
.pet-sponsor-uid-label { font-size: 12px; color: rgba(75, 58, 47, 0.8); white-space: nowrap; }
.pet-sponsor-uid {
  flex: 1;
  padding: 6px 12px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 3px;
  color: var(--pet-ink, #4B3A2F);
  background: #FFFDF6;
  border: 1.5px dashed rgba(75, 58, 47, 0.4);
  border-radius: 8px;
  user-select: all;
}
.pet-sponsor-copy-btn {
  padding: 6px 14px;
  font-size: 12px;
  background: var(--pet-cream, #FFF8EC);
  color: var(--pet-ink, #4B3A2F);
  border: 2px solid var(--pet-ink, #4B3A2F);
  border-radius: 10px 4px 11px 5px / 5px 11px 4px 10px;
  box-shadow: 2px 2px 0 rgba(75, 58, 47, 0.14);
  cursor: pointer;
  transition: transform 0.15s ease;
}
.pet-sponsor-copy-btn:hover { transform: translateY(-1px); }

/* ── 兑换码行 ── */
.pet-sponsor-redeem-row {
  display: flex;
  gap: 10px;
  margin-bottom: 8px;
}
.pet-sponsor-code-input {
  flex: 1;
  padding: 8px 12px;
  font-size: 13px;
  font-family: inherit;
  color: var(--pet-ink, #4B3A2F);
  background: #FFFDF6;
  border: 2px solid var(--pet-ink, #4B3A2F);
  border-radius: 10px 4px 11px 5px / 5px 11px 4px 10px;
  outline: none;
}
.pet-sponsor-code-input:focus { box-shadow: 0 0 0 3px rgba(199, 123, 84, 0.18); }
.pet-sponsor-redeem-btn {
  padding: 8px 20px;
  font-size: 13px;
  font-weight: 700;
  background: #C77B54;
  color: #FFF8EC;
  border: 2px solid var(--pet-ink, #4B3A2F);
  border-radius: 10px 4px 11px 5px / 5px 11px 4px 10px;
  box-shadow: 2px 2px 0 rgba(75, 58, 47, 0.2);
  cursor: pointer;
  transition: transform 0.15s ease;
}
.pet-sponsor-redeem-btn:hover { transform: translateY(-1px); }

.pet-sponsor-content .pet-sponsor-result { font-style: normal;
  
  min-height: 18px;
  margin: 2px 0 6px;
  font-size: 12.5px;
  line-height: 1.7;
  color: rgba(75, 58, 47, 0.75);
}
.pet-sponsor-result.error { color: #C0564F; }
.pet-sponsor-result.success { color: #4E8D5B; font-weight: 700; }

/* ── 底部：声明按钮 + 小字 ── */
.pet-sponsor-footer {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  border-top: 1.5px dashed rgba(75, 58, 47, 0.3);
  padding-top: 10px;
}
.pet-sponsor-statement-btn {
  padding: 6px 16px;
  font-size: 12px;
  background: transparent;
  color: #C77B54;
  border: 1.5px solid #C77B54;
  border-radius: 999px;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}
.pet-sponsor-statement-btn:hover { background: #C77B54; color: #FFF8EC; }
.pet-sponsor-footer-note { font-size: 11px; color: rgba(75, 58, 47, 0.55); }

/* ── 收款码弹窗 ── */
#pet-sponsor-qr-modal .pet-sponsor-qr-content {
  width: min(380px, calc(100vw - 48px));
  background: var(--pet-paper, #FDF6E9);
  border: 2px solid var(--pet-ink, #4B3A2F);
  border-radius: 18px 6px 16px 8px / 8px 16px 6px 18px;
  box-shadow: 4px 5px 0 rgba(75, 58, 47, 0.16);
  padding: 16px 20px 18px;
  text-align: center;
}
.pet-sponsor-qr-img {
  width: min(240px, 70vw);
  height: auto;
  display: block;
  margin: 4px auto 8px;
  background: #fff;
  border: 2px solid var(--pet-ink, #4B3A2F);
  border-radius: 10px;
}
.pet-sponsor-qr-content .pet-sponsor-qr-price { font-style: normal;
   margin: 0 0 6px; font-size: 15px; font-weight: 700; color: #C77B54; }
.pet-sponsor-qr-content .pet-sponsor-qr-note { font-style: normal;
   margin: 0 0 12px; font-size: 12px; line-height: 1.8; color: rgba(75, 58, 47, 0.8); }
.pet-sponsor-qr-note b { color: #C77B54; }
.pet-sponsor-qr-btns { display: flex; justify-content: center; }

@media (max-width: 560px) {
  .pet-sponsor-tiers { grid-template-columns: 1fr; }
  .pet-sponsor-uid-row { flex-wrap: wrap; }
}

/* ── 快捷工具组（硬币 + 饲养手册 + 支持开发者）：状态槽顶排居中（2026-09-01 用户拍板全并入虚框） ── */
.pet-corner-tools {
  display: flex;
  align-items: center;
  gap: 8px;
}
.pet-corner-tools .pet-page-coins { margin-left: 0; }
.pet-corner-tools .pet-manual-btn,
.pet-corner-tools .pet-sponsor-btn { margin-left: 0; }
@media (max-width: 768px) {
  .pet-corner-tools { gap: 5px; }
}

/* ── 打扮间装饰选择条（PET-SPONSOR：无/当前/halo 徽章切换） ── */
.pet-ap-acc-pick {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin: 2px 0 6px;
}

/* ── 赞助称号独立标签（名牌左侧；金边小绶带风） ── */
.pet-title-tag {
  display: inline-block;
  font-family: var(--pet-kai, "Kaiti SC", "Kaiti", "楷体", serif);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1px;
  color: #8A6A1F;
  background: linear-gradient(180deg, #FBE9B7, #F3D878);
  border: 2px solid #C99124;
  border-radius: 3px 8px 3px 8px / 8px 3px 8px 3px;
  box-shadow: 2px 2px 0 rgba(75, 58, 47, 0.14);
  padding: 1px 8px;
  transform: rotate(-4deg);
  user-select: none;
}

/* ── 「天生一对」独立标签（配方卡 meta 行内，金色小标签风；替代原斜盖印章） ── */
.pet-card-tag.soul {
  display: inline-block;
  font-family: "Kaiti SC", "Kaiti", "楷体", serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2px;
  color: #8A6A1F;
  background: linear-gradient(180deg, #FBE9B7, #F3D878);
  border: 2px solid #C99124;
  border-radius: 3px 8px 3px 8px / 8px 3px 8px 3px;
  padding: 0 6px;
  margin-left: 6px;
  transform: rotate(-3deg) translateY(-1px);
  vertical-align: middle;
}

/* ── 「天生一对」常驻特殊标签（与赞助称号标签同款金绶带风，粉金配色区分） ── */
.pet-title-tag.soul {
  color: #9C4A6E;
  background: linear-gradient(180deg, #FBD9E6, #F3AFC8);
  border-color: #C96A8E;
}

/* ── 标签 + 名牌同一排（flex 横排居中：特殊标签在名字左侧） ── */
.pet-nameplate-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-top: 10px;
  flex-wrap: nowrap;
}
.pet-nameplate-row .pet-nameplate { margin: 0; }
.pet-nameplate-row .pet-title-tag { transform: rotate(-4deg) translateY(-1px); }
