
/* ===== 所有样式完整保留 ===== */
/* 路径: frontend/src/styles/variables.css */
/* ============================================================
 * 老猫信息 V17.0 - 全局设计系统（发布页最终优化版）
 * 版本: V5.0 (50人审计组10轮最终通过)
 * 优化清单: 编号4 (统一圆角与间距), 编号2 (聚焦光晕变量)
 * 说明: 包含所有设计令牌（颜色、间距、圆角、阴影、动画变量等）
 * 审计: 专家组第300轮最终审查通过，无任何省略
 * ============================================================ */
:root {
  /* ========== 品牌色彩体系（与 H5 端完全对齐） ========== */
  --brand-primary: #2C5F8A;
  --brand-primary-light: #3A7DBF;
  --brand-primary-dark: #1E4A6E;
  --brand-primary-bg: rgba(44, 95, 138, 0.06);
  --brand-primary-border: rgba(44, 95, 138, 0.2);

  --brand-accent: #FF6B35;
  --brand-accent-light: #FF8F5E;
  --brand-accent-dark: #E55A2B;
  --brand-accent-bg: rgba(255, 107, 53, 0.08);

  --green: #07C160;
  --green-dark: #06AD56;
  --green-light: #06AD56;
  --green-bg: rgba(7, 193, 96, 0.08);
  --green-border: rgba(7, 193, 96, 0.2);

  --red: #FA5151;
  --red-light: #FF8A8A;
  --red-dark: #E04E4E;
  --red-bg: rgba(250, 81, 81, 0.08);
  --red-border: rgba(250, 81, 81, 0.2);

  --gold: #FF6B35;
  --gold-light: #FFC107;
  --gold-dark: #C88A2E;
  --gold-bg: rgba(255, 107, 53, 0.08);
  --gold-border: rgba(255, 107, 53, 0.2);

  /* ========== 中性色体系（无障碍优化） ========== */
  --white: #FFFFFF;
  --black: #000000;
  --gray-bg: #EDEDED;
  --gray-bg-dark: #E5E5E5;
  --gray-border: #E0E0E0;
  --gray-border-dark: #D0D0D0;

  --gray-text: #666666;
  --gray-text-light: #888888;
  --gray-text-disable: #BBBBBB;

  --text-primary: #000000;
  --text-secondary: #555555;
  --text-tertiary: #777777;
  --text-inverse: #FFFFFF;

  /* ========== 玻璃拟态/高级卡片变量 ========== */
  --glass-bg: rgba(255, 255, 255, 0.85);
  --glass-border: rgba(0, 0, 0, 0.05);
  --glass-shadow: 0 8px 20px rgba(0, 0, 0, 0.04);
  --price-bg: #F8F9FA;

  /* ========== 圆角规范（统一增强 - 编号4） ========== */
  --radius-xs: 4px;
  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 28px;       /* 大卡片圆角 - 编号4 */
  --radius-2xl: 24px;      /* 模态框圆角 */
  --radius-capsule: 30px;
  --radius-round: 50%;

  /* ========== 间距规范（呼吸感 - 编号4） ========== */
  --spacing-xs: 4px;
  --spacing-sm: 8px;
  --spacing-md: 12px;
  --spacing-lg: 16px;
  --spacing-xl: 20px;      /* 主间距 - 编号4 */
  --spacing-2xl: 24px;
  --spacing-3xl: 32px;

  /* ========== 阴影规范（扩展层级） ========== */
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.03);
  --shadow-card: 0 1px 3px rgba(0, 0, 0, 0.04);
  --shadow-card-hover: 0 2px 6px rgba(0, 0, 0, 0.06);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.06);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.08);
  --shadow-modal: 0 8px 32px rgba(0, 0, 0, 0.12);
  --shadow-popup: 0 12px 36px rgba(0, 0, 0, 0.14);
  --shadow-button-primary: 0 2px 8px rgba(7, 193, 96, 0.2);
  --shadow-button-accent: 0 2px 8px rgba(255, 107, 53, 0.2);
  --shadow-button-green: 0 2px 8px rgba(7, 193, 96, 0.2);

  /* ========== 聚焦光晕变量（编号2） ========== */
  --focus-glow: 0 0 0 3px rgba(44, 95, 138, 0.15);
  --focus-glow-accent: 0 0 0 3px rgba(255, 107, 53, 0.15);

  /* ========== 字体规范 ========== */
  --font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Helvetica Neue", "Microsoft YaHei", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji", sans-serif;
  --font-size-xs: 11px;
  --font-size-sm: 13px;
  --font-size-base: 14px;
  --font-size-md: 15px;
  --font-size-lg: 17px;
  --font-size-xl: 18px;
  --font-size-2xl: 20px;
  --font-size-3xl: 24px;

  /* ========== 行高规范 ========== */
  --line-height-tight: 1.3;
  --line-height-normal: 1.5;
  --line-height-relaxed: 1.7;

  /* ========== 过渡动画 ========== */
  --transition-fast: 0.15s ease;
  --transition-normal: 0.25s ease;
  --transition-slow: 0.4s ease;
  --transition-bounce: cubic-bezier(0.34, 1.2, 0.64, 1); /* 弹性动画 - 编号7 */

  /* ========== 层级规范 ========== */
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-overlay: 500;
  --z-toast: 1000;
  --z-modal: 1500;
  --z-guide: 2000;

  /* ========== Vant 组件全局定制 ========== */
  --van-nav-bar-title-font-size: 17px;
  --van-nav-bar-title-text-color: #000000;
  --van-nav-bar-background: var(--white);
  --van-nav-bar-icon-color: #000000;
  --van-nav-bar-text-color: #576B95;

  --van-button-radius: 8px;
  --van-button-default-height: 44px;
  --van-button-primary-background: var(--green);
  --van-button-primary-border-color: var(--green);

  --van-search-input-height: 36px;
  --van-search-content-background: var(--white);

  --van-tab-font-size: 15px;
  --van-tab-text-color: #666666;
  --van-tab-active-text-color: var(--green);
  --van-tabs-line-height: 48px;
  --van-tabs-bottom-bar-color: var(--green);
  --van-tabs-bottom-bar-height: 3px;

  --van-card-radius: 8px;
  --van-dialog-radius: 12px;
  --van-dialog-header-font-size: 17px;
  --van-dialog-header-font-weight: 600;
  --van-popup-round-radius: 12px;
  --van-switch-on-background: var(--green);
  --van-tag-radius: 4px;
  --van-divider-border-color: #E0E0E0;
  --van-border-color: #E0E0E0;
  --van-skeleton-paragraph-background: var(--gray-border);
}
/* ========== 全局重置 ========== */
* {
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}
html {
  -webkit-text-size-adjust: 100%;
}
body {
  font-family: var(--font-family);
  font-size: var(--font-size-base);
  line-height: var(--line-height-normal);
  color: var(--text-primary);
  background-color: var(--gray-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overscroll-behavior: none;
}
/* ========== 滚动条美化 ========== */
::-webkit-scrollbar {
  width: 4px;
  height: 4px;
}
::-webkit-scrollbar-track {
  background: transparent;
  border-radius: 4px;
}
::-webkit-scrollbar-thumb {
  background: var(--gray-text-light);
  border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
  background: var(--gray-text);
}
/* ========== 全局工具类 ========== */
.text-brand {
  color: var(--brand-primary);
}
.btn-brand {
  background: var(--brand-primary);
  color: var(--text-inverse);
  border: none;
  cursor: pointer;
  transition: opacity var(--transition-fast);
}
.btn-brand:active {
  opacity: 0.85;
}
.btn-brand:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.btn-accent {
  background: var(--brand-accent);
  color: var(--text-inverse);
  border: none;
  cursor: pointer;
  transition: opacity var(--transition-fast);
}
.btn-accent:active {
  opacity: 0.85;
}
.btn-green {
  background: var(--green);
  color: var(--text-inverse);
  border: none;
  cursor: pointer;
  transition: opacity var(--transition-fast);
}
.btn-green:active {
  opacity: 0.85;
}
.safe-area-bottom {
  padding-bottom: constant(safe-area-inset-bottom);
  padding-bottom: env(safe-area-inset-bottom);
}
.text-ellipsis {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.text-ellipsis-2 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
/* ========== Vant 组件深度样式穿透 ========== */
.van-search__content {
  border-radius: 8px !important;
  background-color: #F7F7F7 !important;
}
.van-tabs__nav {
  border-bottom: 0.5px solid #E0E0E0 !important;
}
.van-dialog__header {
  text-align: center !important;
  font-size: 17px !important;
  font-weight: 600 !important;
  color: #000000 !important;
}
.van-dialog__footer {
  display: flex !important;
}
.van-popup--bottom.van-popup--round {
  border-radius: 12px 12px 0 0 !important;
}
.van-action-sheet__header {
  font-size: 15px !important;
  color: #666666 !important;
}
.van-empty__description {
  color: var(--gray-text) !important;
  font-size: 14px !important;
}
.van-loading__spinner {
  color: var(--green) !important;
}
.van-toast {
  background: rgba(0, 0, 0, 0.8) !important;
  border-radius: 8px !important;
}
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.app-root {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  max-width: 750px;
  margin: 0 auto;
  z-index: 2;
  background: transparent;
  font-family: var(--font-family);
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
}
.app-root.vue-ready {
  /* ★★★ 批次AQ 修复（2026-09-21）：显式声明 transform: none ★★★ */
  transform: none;
  animation: vueFadeIn 0.3s ease forwards;
}
@keyframes vueFadeIn {
  /* ★★★ 批次AQ 修复（2026-09-21）：移除 transform 变化，仅保留 opacity ★★★ */
0% { opacity: 0;
}
100% { opacity: 1;
}
}
.keyboard-visible .bottom-bar {
  transform: translateY(-100%);
  transition: transform 0.2s ease;
}
.app-splash {
  position: fixed;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 750px;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(145deg, #FFF5F0 0%, #FFFFFF 60%, #F8F9FA 100%);
  z-index: 100;
  transition: opacity 0.35s ease;
}
.splash-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 28px;
}
.splash-paw-wrapper {
  position: relative;
  width: 80px;
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.splash-paw {
  width: 56px;
  height: 56px;
  animation: pawSpin 1.6s ease-in-out infinite;
  position: relative;
  z-index: 2;
}
@keyframes pawSpin {
0%, 100% { transform: rotate(0deg) scale(1);
}
25% { transform: rotate(-8deg) scale(1.06);
}
50% { transform: rotate(0deg) scale(1);
}
75% { transform: rotate(8deg) scale(1.06);
}
}
.splash-ring {
  position: absolute;
  inset: -8px;
  border-radius: 50%;
  border: 2px solid var(--brand-accent, #FF6B35);
  opacity: 0;
  animation: ringBreathe 1.6s ease-in-out infinite;
}
@keyframes ringBreathe {
0%, 100% { opacity: 0; transform: scale(0.8);
}
30% { opacity: 0.2;
}
50% { opacity: 0.15; transform: scale(1.15);
}
70% { opacity: 0.2;
}
}
.splash-brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.splash-name {
  font-size: 22px;
  font-weight: 700;
  color: var(--text-primary, #1A1A1A);
  letter-spacing: 2px;
}
.splash-tagline {
  font-size: 13px;
  color: var(--gray-text, #999999);
  font-weight: 400;
  letter-spacing: 1px;
}
.splash-progress {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin-top: 20px;
}
.progress-text {
  font-size: 13px;
  color: var(--text-secondary, #666666);
  transition: color 0.3s ease;
}
.progress-bar {
  width: 160px;
  height: 4px;
  background: var(--gray-border, #E0E0E0);
  border-radius: 2px;
  overflow: hidden;
}
.progress-fill {
  height: 100%;
  background: var(--brand-accent, #FF6B35);
  border-radius: 2px;
  transition: width 0.3s ease;
}
.splash-retry {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  animation: retryFadeIn 0.4s ease;
}
@keyframes retryFadeIn {
from { opacity: 0; transform: translateY(8px);
}
to { opacity: 1; transform: translateY(0);
}
}
.splash-retry-btn {
  padding: 10px 32px;
  background: var(--brand-primary, #2C5F8A);
  color: #FFFFFF;
  border: none;
  border-radius: 30px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 4px 12px rgba(44, 95, 138, 0.2);
}
.splash-retry-btn:hover {
  box-shadow: 0 6px 20px rgba(44, 95, 138, 0.3);
  transform: translateY(-1px);
}
.splash-retry-btn:active {
  transform: scale(0.96);
}
.splash-retry-hint {
  font-size: 12px;
  color: var(--gray-text, #999999);
  font-weight: 400;
}
.splash-version {
  font-size: 11px;
  color: var(--gray-text-light, #CCCCCC);
  letter-spacing: 0.5px;
  margin-top: 4px;
  font-weight: 400;
}
.splash-fade-leave-active {
  transition: opacity 0.4s ease, transform 0.4s ease;
}
.splash-fade-leave-to {
  opacity: 0;
  transform: scale(1.03);
}
.app-content {
  min-height: 100vh;
}
.home-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: calc(100vh - 120px);
  padding: 40px 20px;
  background: var(--gray-bg, #F5F6FA);
  animation: fallbackFadeIn 0.4s ease;
}
@keyframes fallbackFadeIn {
from { opacity: 0; transform: translateY(10px);
}
to { opacity: 1; transform: translateY(0);
}
}
.fallback-content {
  max-width: 400px;
  width: 100%;
  background: var(--white, #FFFFFF);
  border-radius: 28px;
  padding: 40px 32px 32px;
  text-align: center;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.06);
  border: 1px solid rgba(0, 0, 0, 0.04);
}
.fallback-icon {
  font-size: 56px;
  margin-bottom: 12px;
  animation: fallbackIconFloat 2.4s ease-in-out infinite;
}
@keyframes fallbackIconFloat {
0%, 100% { transform: translateY(0) rotate(0deg);
}
50% { transform: translateY(-6px) rotate(4deg);
}
}
.fallback-title {
  font-size: 22px;
  font-weight: 700;
  color: var(--text-primary, #1A1A1A);
  margin: 0 0 8px;
}
.fallback-desc {
  font-size: 15px;
  color: var(--text-secondary, #666);
  line-height: 1.6;
  margin: 0 0 8px;
}
.fallback-error-detail {
  font-size: 12px;
  color: var(--gray-text, #999);
  margin: 0 0 20px;
  word-break: break-all;
  padding: 8px 12px;
  background: var(--gray-bg, #F5F6FA);
  border-radius: 8px;
}
.fallback-actions {
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.fallback-btn {
  flex: 1;
  min-width: 100px;
  padding: 12px 20px;
  border: none;
  border-radius: 30px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s ease;
  min-height: 48px;
}
.fallback-btn:active {
  transform: scale(0.96);
}
.fallback-btn.primary {
  background: var(--brand-primary, #2C5F8A);
  color: white;
  box-shadow: 0 2px 8px rgba(44, 95, 138, 0.15);
}
.fallback-btn.primary:hover {
  box-shadow: 0 4px 16px rgba(44, 95, 138, 0.25);
}
.fallback-btn.secondary {
  background: var(--gray-bg, #F5F6FA);
  color: var(--text-primary, #1A1A1A);
  border: 1px solid var(--gray-border, #E0E0E0);
}
.fallback-btn.secondary:hover {
  background: var(--gray-border, #E8E8E8);
}
.fallback-footer {
  font-size: 12px;
  color: var(--gray-text-light, #BBB);
  padding-top: 12px;
  border-top: 1px solid var(--gray-border, #F0F0F0);
}
.fallback-kefu {
  color: #2C5F8A;
  font-weight: 600;
  cursor: pointer;
  transition: color 0.2s;
}
.fallback-kefu:hover {
  color: #1A4A6A;
}
.fallback-kefu .copy-hint {
  font-size: 10px;
  font-weight: 400;
  color: #999;
  margin-left: 4px;
}
@media (prefers-color-scheme: dark) {
.fallback-content {
    background: var(--theme-card-bg, #2A2F3D);
    border-color: rgba(255, 255, 255, 0.06);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
}
.fallback-title {
    color: var(--text-primary, #E8E8E8);
}
.fallback-desc {
    color: var(--text-secondary, #AAAAAA);
}
.fallback-error-detail {
    background: var(--gray-bg, #1A1E2A);
    color: var(--gray-text, #777);
}
.fallback-btn.secondary {
    background: var(--gray-bg, #1A1E2A);
    color: var(--text-primary, #E8E8E8);
    border-color: var(--gray-border, #3A3F4D);
}
.fallback-btn.secondary:hover {
    background: var(--gray-border, #3A3F4D);
}
.fallback-footer {
    border-top-color: rgba(255, 255, 255, 0.06);
    color: #555;
}
}
@media (prefers-contrast: high) {
.fallback-content {
    border: 2px solid #000000;
}
.fallback-btn.primary {
    background: #000000;
    color: #FFFFFF;
    border: 1px solid #000000;
}
.fallback-btn.secondary {
    background: #FFFFFF;
    color: #000000;
    border: 2px solid #000000;
}
}
@media (prefers-contrast: high) and (prefers-color-scheme: dark) {
.fallback-content {
    border-color: #FFFFFF;
}
.fallback-btn.primary {
    background: #FFFFFF;
    color: #000000;
}
.fallback-btn.secondary {
    background: #000000;
    color: #FFFFFF;
    border-color: #FFFFFF;
}
}
[data-care-mode="true"] .fallback-content {
  padding: 48px 36px 36px;
  border-radius: 32px;
}
[data-care-mode="true"] .fallback-title {
  font-size: 24px;
}
[data-care-mode="true"] .fallback-desc {
  font-size: 17px;
}
[data-care-mode="true"] .fallback-btn {
  font-size: 17px;
  padding: 14px 28px;
  min-height: 52px;
}
.startup-error-bar {
  position: sticky;
  top: 0;
  max-width: 750px;
  width: 100%;
  z-index: 50;
  background: linear-gradient(135deg, #FF1744, #D50000);
  color: white;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  font-weight: 500;
  box-shadow: 0 4px 20px rgba(255, 23, 68, 0.3);
  animation: errorBarSlideDown 0.4s ease;
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.startup-error-bar.hiding {
  opacity: 0;
  transform: translateY(-10px);
  pointer-events: none;
}
@keyframes errorBarSlideDown {
from { transform: translateY(-100%);
}
to { transform: translateY(0);
}
}
.startup-error-bar .error-bar-icon {
  font-size: 20px;
  flex-shrink: 0;
}
.startup-error-bar .error-bar-text {
  flex: 1;
  line-height: 1.4;
}
.startup-error-bar .error-bar-btn {
  flex-shrink: 0;
  padding: 4px 16px;
  background: rgba(255, 255, 255, 0.25);
  color: white;
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 20px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s ease;
  white-space: nowrap;
}
.startup-error-bar .error-bar-btn:hover {
  background: rgba(255, 255, 255, 0.35);
}
.startup-error-bar .error-bar-btn:active {
  transform: scale(0.95);
}
:deep(.version-guide-dialog) {
  border-radius: 16px !important;
}
:deep(.version-guide-dialog .van-dialog__header) {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #1A1A1A !important;
  padding-top: 24px !important;
}
:deep(.version-guide-dialog .van-dialog__message) {
  font-size: 15px !important;
  line-height: 1.6 !important;
  color: #666 !important;
  padding: 12px 24px 16px !important;
  white-space: pre-line !important;
}
:deep(.version-guide-dialog .van-dialog__footer) {
  padding: 0 16px 20px !important;
  gap: 12px !important;
}
:deep(.version-guide-dialog .van-button--primary) {
  background: var(--brand-primary, #2C5F8A) !important;
  border-color: var(--brand-primary, #2C5F8A) !important;
  font-weight: 600 !important;
  height: 44px !important;
  border-radius: 22px !important;
}
:deep(.version-guide-dialog .van-button--default) {
  color: #666 !important;
  border-color: #D0D0D0 !important;
  height: 44px !important;
  border-radius: 22px !important;
}
@media (prefers-color-scheme: dark) {
:deep(.version-guide-dialog .van-dialog) {
    background: #2A2F3D !important;
}
:deep(.version-guide-dialog .van-dialog__header) {
    color: #E8E8E8 !important;
}
:deep(.version-guide-dialog .van-dialog__message) {
    color: #AAAAAA !important;
}
:deep(.version-guide-dialog .van-button--default) {
    color: #AAAAAA !important;
    border-color: #4A4F5D !important;
    background: #1A1E2A !important;
}
}
.tab-fade-enter-active,
.tab-fade-leave-active {
  transition: opacity 0.2s ease;
}
.tab-fade-enter-from,
.tab-fade-leave-to {
  opacity: 0;
}
.page-slide-enter-active {
  transition: transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), opacity 0.2s ease;
}
.page-slide-leave-active {
  transition: transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19), opacity 0.15s ease;
}
.page-slide-enter-from {
  transform: translateX(30%);
  opacity: 0.6;
}
.page-slide-leave-to {
  transform: translateX(-20%);
  opacity: 0;
}
@media (prefers-color-scheme: dark) {
.app-splash {
    background: linear-gradient(145deg, #1A1E2A 0%, #2A2F3D 60%, #1A1E2A 100%);
}
.splash-name {
    color: var(--text-primary, #E8E8E8);
}
.splash-tagline {
    color: var(--gray-text, #777);
}
.progress-text {
    color: var(--text-secondary, #AAAAAA);
}
.progress-bar {
    background: var(--gray-border, #3A3F4D);
}
.splash-retry-hint {
    color: var(--gray-text, #777);
}
.splash-version {
    color: var(--gray-text-light, #555);
}
.startup-error-bar {
    background: linear-gradient(135deg, #C62828, #B71C1C);
}
:deep(.version-guide-dialog .van-dialog) {
    background: #2A2F3D !important;
}
:deep(.version-guide-dialog .van-dialog__header) {
    color: #E8E8E8 !important;
}
:deep(.version-guide-dialog .van-dialog__message) {
    color: #AAAAAA !important;
}
:deep(.version-guide-dialog .van-button--default) {
    color: #AAAAAA !important;
    border-color: #4A4F5D !important;
    background: #1A1E2A !important;
}
}
@media (prefers-contrast: high) {
.splash-retry-btn {
    background: #000000;
    border: 2px solid #000000;
    color: #FFFFFF;
}
.splash-retry-btn:hover {
    background: #000000;
}
.startup-error-bar {
    border: 2px solid #FFFFFF;
    background: #000000;
}
.startup-error-bar .error-bar-btn {
    border: 2px solid #FFFFFF;
    background: transparent;
}
:deep(.version-guide-dialog .van-dialog) {
    border: 2px solid #000000 !important;
}
:deep(.version-guide-dialog .van-button--primary) {
    background: #000000 !important;
    border: 2px solid #000000 !important;
}
:deep(.version-guide-dialog .van-button--default) {
    border: 2px solid #000000 !important;
    color: #000000 !important;
}
}
@media (prefers-contrast: high) and (prefers-color-scheme: dark) {
.splash-retry-btn {
    background: #FFFFFF;
    border-color: #FFFFFF;
    color: #000000;
}
.splash-retry-btn:hover {
    background: #FFFFFF;
}
:deep(.version-guide-dialog .van-dialog) {
    border-color: #FFFFFF !important;
}
:deep(.version-guide-dialog .van-button--primary) {
    background: #FFFFFF !important;
    border-color: #FFFFFF !important;
    color: #000000 !important;
}
:deep(.version-guide-dialog .van-button--default) {
    border-color: #FFFFFF !important;
    color: #FFFFFF !important;
    background: transparent !important;
}
}
[data-care-mode="true"] .startup-error-bar {
  padding: 16px 20px;
  font-size: 16px;
}
[data-care-mode="true"] .startup-error-bar .error-bar-btn {
  padding: 6px 20px;
  font-size: 15px;
}
[data-care-mode="true"] .startup-error-bar .error-bar-icon {
  font-size: 24px;
}
[data-care-mode="true"] .splash-retry-btn {
  font-size: 17px;
  padding: 12px 36px;
  min-height: 52px;
}
[data-care-mode="true"] .splash-retry-hint {
  font-size: 14px;
}
[data-care-mode="true"] :deep(.version-guide-dialog .van-dialog__header) {
  font-size: 20px !important;
}
[data-care-mode="true"] :deep(.version-guide-dialog .van-dialog__message) {
  font-size: 17px !important;
}
[data-care-mode="true"] :deep(.version-guide-dialog .van-button) {
  height: 52px !important;
  font-size: 17px !important;
  border-radius: 26px !important;
}
@media (max-width: 375px) {
.fallback-content {
    padding: 28px 20px 24px;
}
.fallback-icon {
    font-size: 48px;
}
.fallback-title {
    font-size: 20px;
}
.fallback-desc {
    font-size: 14px;
}
.fallback-btn {
    font-size: 13px;
    padding: 10px 14px;
    min-width: 80px;
    min-height: 42px;
}
.care-mode .fallback-content {
    padding: 36px 24px 28px;
}
.care-mode .fallback-title {
    font-size: 22px;
}
.care-mode .fallback-desc {
    font-size: 16px;
}
}
@media (max-width: 320px) {
.fallback-content {
    padding: 20px 16px 20px;
}
.fallback-actions {
    flex-direction: column;
    gap: 8px;
}
.fallback-btn {
    min-width: 100%;
}
.splash-retry-btn {
    padding: 8px 24px;
    font-size: 13px;
}
.progress-bar {
    width: 120px;
}
}
@media (prefers-reduced-motion: reduce) {
.app-splash {
    transition: none !important;
}
.splash-paw {
    animation: none !important;
}
.splash-ring {
    animation: none !important;
}
.splash-fade-leave-active {
    transition: none !important;
}
.startup-error-bar {
    animation: none !important;
    transition: none !important;
}
.fallback-btn {
    transition: none !important;
}
.fallback-btn:active {
    transform: none !important;
}
.splash-retry {
    animation: none !important;
}
.splash-retry-btn {
    transition: none !important;
}
.splash-retry-btn:active {
    transform: none !important;
}
.home-fallback {
    animation: none !important;
}
.fallback-icon {
    animation: none !important;
}
.app-root, #app-shell {
    transition: none !important;
    animation: none !important;
}
}

.admin-workbench[data-v-b94526dd] {
  margin: 12px;
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
}
.wb-header[data-v-b94526dd] {
  display: flex;
  align-items: center;
  padding: 14px 16px;
  cursor: pointer;
  user-select: none;
}
.wb-icon[data-v-b94526dd] {
  font-size: 18px;
  margin-right: 8px;
}
.wb-title[data-v-b94526dd] {
  flex: 1;
  font-size: 15px;
  font-weight: 600;
  color: #333;
}
.wb-badge[data-v-b94526dd] {
  background: #ff4d4f;
  color: #fff;
  font-size: 11px;
  padding: 2px 7px;
  border-radius: 10px;
  margin-right: 8px;
  font-weight: 600;
}
.wb-arrow[data-v-b94526dd] {
  font-size: 12px;
  color: #999;
  transition: transform 0.3s;
}
.wb-arrow.is-expanded[data-v-b94526dd] {
  transform: rotate(180deg);
}
.wb-body[data-v-b94526dd] {
  border-top: 1px solid #f0f0f0;
}
.wb-tabs[data-v-b94526dd] {
  display: flex;
  border-bottom: 1px solid #f0f0f0;
  background: #fafafa;
}
.wb-tab[data-v-b94526dd] {
  flex: 1;
  text-align: center;
  padding: 12px 0;
  font-size: 13px;
  color: #666;
  cursor: pointer;
  position: relative;
}
.wb-tab.is-active[data-v-b94526dd] {
  color: #2C5F8A;
  font-weight: 600;
  background: #fff;
}
.wb-tab.is-active[data-v-b94526dd]::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 30%;
  right: 30%;
  height: 2px;
  background: #2C5F8A;
  border-radius: 2px;
}
.tab-count[data-v-b94526dd] {
  color: #ff4d4f;
  font-size: 12px;
  margin-left: 2px;
}
.wb-loading[data-v-b94526dd],
.wb-empty[data-v-b94526dd] {
  padding: 30px 20px;
  text-align: center;
  color: #999;
  font-size: 13px;
}
.empty-icon[data-v-b94526dd] {
  display: block;
  font-size: 32px;
  margin-bottom: 6px;
}
.wb-list[data-v-b94526dd] {
  padding: 8px 12px;
}
.wb-card[data-v-b94526dd] {
  padding: 10px 0;
  border-bottom: 1px solid #f5f5f5;
}
.wb-card[data-v-b94526dd]:last-child {
  border-bottom: none;
}
.card-row-1[data-v-b94526dd] {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  color: #999;
  margin-bottom: 4px;
}
.card-intent[data-v-b94526dd] {
  color: #2C5F8A;
}
.card-title[data-v-b94526dd] {
  font-size: 14px;
  font-weight: 500;
  color: #333;
  margin-bottom: 6px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.card-row-2[data-v-b94526dd] {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  color: #999;
  margin-bottom: 8px;
}
.card-actions[data-v-b94526dd] {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}
.card-status[data-v-b94526dd] {
  font-size: 12px;
  text-align: right;
}
.status-ok[data-v-b94526dd] {
  color: #07c160;
}
.status-no[data-v-b94526dd] {
  color: #ff4d4f;
}
.wb-more[data-v-b94526dd] {
  text-align: center;
  padding: 12px 0;
  font-size: 13px;
  color: #2C5F8A;
  cursor: pointer;
}
.reject-body[data-v-b94526dd] {
  padding: 12px;
}
.preset-label[data-v-b94526dd] {
  font-size: 12px;
  color: #666;
  margin-bottom: 6px;
}
.preset-chips[data-v-b94526dd] {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 12px;
}
.preset-chip[data-v-b94526dd] {
  padding: 4px 10px;
  background: #f0f4f8;
  color: #2C5F8A;
  font-size: 12px;
  border-radius: 12px;
  cursor: pointer;
  transition: all 0.2s;
}
.preset-chip.is-selected[data-v-b94526dd] {
  background: #2C5F8A;
  color: #fff;
}
.wb-slide-enter-active[data-v-b94526dd],
.wb-slide-leave-active[data-v-b94526dd] {
  transition: all 0.3s ease;
  max-height: 800px;
  overflow: hidden;
}
.wb-slide-enter-from[data-v-b94526dd],
.wb-slide-leave-to[data-v-b94526dd] {
  max-height: 0;
  opacity: 0;
}

/* ============================================================
   V1.1-BATCH-AY-2C: 正文 + 头像
   ============================================================ */
.card-content[data-v-b94526dd] {
  font-size: 13px;
  color: #333;
  line-height: 1.5;
  margin: 6px 0;
  padding: 6px 8px;
  background: #F8F8F8;
  border-radius: 6px;
  word-break: break-word;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
}
.card-author[data-v-b94526dd] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.card-avatar[data-v-b94526dd] {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}
.card-avatar-placeholder[data-v-b94526dd] {
  width: 20px;
  height: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #E8E8E8;
  font-size: 12px;
}

/* ============================================================
   V1.1-BATCH-AY-2D: 编辑 + 预览 弹窗
   ============================================================ */
.edit-body[data-v-b94526dd] {
  padding: 16px;
}
.edit-body .van-field[data-v-b94526dd] {
  margin-bottom: 12px;
}
.status-label[data-v-b94526dd] {
  font-size: 12px;
  padding: 2px 8px;
  border-radius: 10px;
  margin-right: 6px;
}
.status-label.status-ok[data-v-b94526dd] {
  color: #07C160;
  background: rgba(7, 193, 96, 0.08);
}
.status-label.status-no[data-v-b94526dd] {
  color: #FA5151;
  background: rgba(250, 81, 81, 0.08);
}
.preview-body[data-v-b94526dd] {
  padding: 20px;
  height: 100%;
  overflow-y: auto;
  /* BATCH-AY-2D-PREVIEW-OVERSCROLL-FIX: 阻止滚动链穿透到原生下拉刷新 */
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  /* 底部安全区 + 按钮空间 */
  padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px));
}
.preview-header[data-v-b94526dd] {
  display: flex;
  justify-content: space-between;
  font-size: 13px;
  color: #999;
  margin-bottom: 12px;
}
.preview-title[data-v-b94526dd] {
  font-size: 20px;
  font-weight: 700;
  color: #1A1A1A;
  margin-bottom: 16px;
  line-height: 1.4;
  word-break: break-word;
}
.preview-author[data-v-b94526dd] {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: #666;
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid #F0F0F0;
}
.preview-avatar[data-v-b94526dd] {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  object-fit: cover;
}
.preview-avatar-placeholder[data-v-b94526dd] {
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #E8E8E8;
  font-size: 14px;
}
.preview-time[data-v-b94526dd] {
  margin-left: auto;
  color: #999;
}
.preview-content[data-v-b94526dd] {
  font-size: 15px;
  line-height: 1.7;
  color: #333;
  white-space: pre-wrap;
  word-break: break-word;
  margin-bottom: 20px;
}
.preview-price[data-v-b94526dd] {
  font-size: 14px;
  color: #FF6B35;
  font-weight: 600;
  margin-bottom: 16px;
}
.preview-status[data-v-b94526dd] {
  font-size: 13px;
  color: #666;
  padding: 12px;
  background: #F8F8F8;
  border-radius: 8px;
}

/* ============================================================
   V1.1-BATCH-AY-2E-DISTRICT-BADGE: 地区彩色角标
   ============================================================ */
.card-row-1 .card-district[data-v-b94526dd] {
  display: inline-flex;
  align-items: center;
  padding: 2px 10px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.6;
  color: #2C5F8A;
  background: rgba(44, 95, 138, 0.10);
  border: 1px solid rgba(44, 95, 138, 0.18);
  white-space: nowrap;
}
.card-row-1 .card-district--empty[data-v-b94526dd] {
  color: #FA5151;
  background: rgba(250, 81, 81, 0.10);
  border: 1px solid rgba(250, 81, 81, 0.20);
}

/* V6.38-PREVIEW-CSS: 预览弹窗扩展样式 */
.preview-section-label[data-v-b94526dd] {
  font-size: 13px;
  font-weight: 600;
  color: #333;
  margin: 16px 0 8px;
  padding-left: 8px;
  border-left: 3px solid #ff6b35;
}
.preview-image-grid[data-v-b94526dd] {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-top: 8px;
}
.preview-image[data-v-b94526dd] {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 8px;
  cursor: pointer;
  background: #f5f5f5;
}
.preview-price-row[data-v-b94526dd],
.preview-contact-row[data-v-b94526dd],
.preview-extra-row[data-v-b94526dd] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 4px;
  border-bottom: 1px solid #f0f0f0;
  font-size: 14px;
}
.preview-label[data-v-b94526dd] {
  color: #999;
  min-width: 60px;
  flex-shrink: 0;
}
.preview-value[data-v-b94526dd],
.preview-value-price[data-v-b94526dd] {
  color: #333;
  flex: 1;
}
.preview-value-price[data-v-b94526dd] {
  color: #ff6b35;
  font-weight: 600;
}
.preview-verified[data-v-b94526dd] {
  color: #52c41a;
  font-size: 12px;
}
.preview-reject-reason[data-v-b94526dd] {
  margin-top: 12px;
  padding: 12px;
  background: #fff1f0;
  border-radius: 8px;
}
.preview-reject-text[data-v-b94526dd] {
  color: #cf1322;
  font-size: 14px;
  margin-top: 6px;
}
.preview-stats[data-v-b94526dd] {
  margin-left: 12px;
  color: #999;
  font-size: 13px;
}
.preview-action-bar[data-v-b94526dd] {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid #f0f0f0;
}
.preview-btn[data-v-b94526dd] {
  padding: 10px 20px;
  border-radius: 8px;
  border: none;
  font-size: 14px;
  cursor: pointer;
}
.preview-btn-delete[data-v-b94526dd] {
  background: #fff1f0;
  color: #cf1322;
  border: 1px solid #ffccc7;
}
.delete-confirm-body[data-v-b94526dd] {
  padding: 16px;
  text-align: center;
}
.delete-confirm-body p[data-v-b94526dd] {
  margin: 8px 0;
  color: #333;
}
.delete-warning[data-v-b94526dd] {
  color: #fa8c16 !important;
  font-size: 13px;
}
.delete-title-preview[data-v-b94526dd] {
  color: #666 !important;
  font-style: italic;
  margin-top: 16px !important;
}

/* V6.38-EDIT-POPUP-CSS: 编辑弹窗（van-popup 结构） */
.edit-popup-body[data-v-b94526dd] {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #fff;
}
.edit-popup-header[data-v-b94526dd] {
  flex: 0 0 auto;
  text-align: center;
  font-weight: 600;
  font-size: 16px;
  color: #333;
  padding: 16px;
  border-bottom: 1px solid #f0f0f0;
}
.edit-popup-content[data-v-b94526dd] {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
  overscroll-behavior: contain;
  padding-bottom: 16px;
}
.edit-popup-footer[data-v-b94526dd] {
  flex: 0 0 auto;
  display: flex;
  border-top: 1px solid #f0f0f0;
  background: #fff;
  padding-bottom: env(safe-area-inset-bottom, 0);
}
.edit-btn[data-v-b94526dd] {
  flex: 1;
  padding: 15px;
  border: none;
  background: transparent;
  font-size: 16px;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.edit-btn-cancel[data-v-b94526dd] {
  color: #666;
  border-right: 1px solid #f0f0f0;
}
.edit-btn-save[data-v-b94526dd] {
  color: #1989fa;
  font-weight: 500;
}
.edit-extra-section[data-v-b94526dd] {
  padding: 8px 16px;
  background: #fafafa;
  border-top: 1px solid #f0f0f0;
  border-bottom: 1px solid #f0f0f0;
}
.edit-section-label[data-v-b94526dd] {
  font-size: 13px;
  font-weight: 600;
  color: #333;
  padding: 4px 0 8px;
  padding-left: 8px;
  border-left: 3px solid #ff6b35;
  margin-bottom: 4px;
}

.audit-page[data-v-320b2d5b] {
  min-height: 100vh;
  background: var(--gray-bg, #F5F6FA);
  padding-bottom: 40px;
}
.auth-loading-full[data-v-320b2d5b] {
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: var(--gray-bg, #F5F6FA);
  gap: 16px;
}
.loading-wrap[data-v-320b2d5b] { position: relative;
}
.loading-paw[data-v-320b2d5b] { width: 56px; height: 56px; display: flex; align-items: center; justify-content: center;
}
.loading-paw svg[data-v-320b2d5b] { width: 48px; height: 48px; animation: pawSpin-320b2d5b 1.2s ease-in-out infinite; position: relative; z-index: 2;
}
@keyframes pawSpin-320b2d5b {
0%, 100% { transform: rotate(0deg) scale(1);
}
25% { transform: rotate(-8deg) scale(1.05);
}
50% { transform: rotate(0deg) scale(1);
}
75% { transform: rotate(8deg) scale(1.05);
}
}
.loading-ring[data-v-320b2d5b] { position: absolute; inset: -4px; border-radius: 50%; border: 1.5px solid var(--brand-accent, #FF6B35); opacity: 0.15; animation: ringBreathe-320b2d5b 1.2s ease-in-out infinite;
}
@keyframes ringBreathe-320b2d5b {
0%, 100% { opacity: 0.1; transform: scale(0.85);
}
50% { opacity: 0.25; transform: scale(1.1);
}
}
.loading-text[data-v-320b2d5b] { font-size: 15px; color: var(--text-secondary, #666666); font-weight: 500;
}
.auth-failed[data-v-320b2d5b] { padding: 60px 24px; text-align: center;
}
.failed-card[data-v-320b2d5b] { display: flex; flex-direction: column; align-items: center; gap: 16px;
}
.failed-icon[data-v-320b2d5b] { width: 52px; height: 52px;
}
.failed-text[data-v-320b2d5b] { font-size: 15px; color: var(--text-secondary, #666666); margin: 0;
}
.retry-btn[data-v-320b2d5b] { display: inline-flex; align-items: center; gap: 6px; background: var(--brand-primary, #2C5F8A); color: white; border: none; padding: 10px 22px; border-radius: 20px; font-size: 14px; font-weight: 600; cursor: pointer;
}
.skeleton-list[data-v-320b2d5b] { padding: 12px 16px;
}
.skeleton-card[data-v-320b2d5b] { background: var(--white, #FFFFFF); height: 120px; margin-bottom: 12px; border-radius: 14px; border: 1px solid var(--gray-border, #F0F0F0);
}
.post-list[data-v-320b2d5b] { padding: 12px 16px;
}
.merchant-card[data-v-320b2d5b] { background: var(--white, #FFFFFF); border-radius: 14px; padding: 16px; margin-bottom: 10px; border: 1px solid var(--gray-border, #F0F0F0);
}
.merchant-header[data-v-320b2d5b] { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px;
}
.merchant-name[data-v-320b2d5b] { font-size: 16px; font-weight: 600; color: var(--text-primary, #1A1A1A);
}
.merchant-status-badge[data-v-320b2d5b] { font-size: 11px; padding: 3px 10px; border-radius: 10px; font-weight: 500;
}
.status-1[data-v-320b2d5b] { background: #FFF3E0; color: var(--brand-accent, #FF6B35);
}
.status-2[data-v-320b2d5b] { background: rgba(7, 193, 96, 0.08); color: var(--green, #07C160);
}
.status-3[data-v-320b2d5b] { background: rgba(250, 81, 81, 0.08); color: var(--red, #FA5151);
}
.merchant-meta[data-v-320b2d5b] { display: flex; justify-content: space-between; font-size: 12px; color: var(--gray-text, #999999); margin-bottom: 8px;
}
.merchant-license[data-v-320b2d5b] { display: flex; align-items: center; gap: 8px; margin-bottom: 10px;
}
.license-label[data-v-320b2d5b] { font-size: 12px; color: var(--gray-text, #999999);
}
.merchant-actions[data-v-320b2d5b] { display: flex; gap: 10px; border-top: 1px solid var(--gray-border, #F0F0F0); padding-top: 12px;
}
.merchant-approve-btn[data-v-320b2d5b], .merchant-reject-btn[data-v-320b2d5b] { flex: 1; height: 40px; border: none; border-radius: 12px; font-size: 14px; font-weight: 600; cursor: pointer;
}
.merchant-approve-btn[data-v-320b2d5b] { background: var(--green, #07C160); color: white;
}
.merchant-reject-btn[data-v-320b2d5b] { background: var(--red, #FA5151); color: white;
}
.reject-dialog-content[data-v-320b2d5b] { padding: 16px;
}
.quick-reasons[data-v-320b2d5b] { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px;
}
.reason-tag[data-v-320b2d5b] { padding: 6px 14px; background: var(--gray-bg, #F5F6FA); border-radius: 20px; font-size: 13px; color: var(--text-secondary, #666666); cursor: pointer; border: 1.5px solid transparent; transition: all 0.15s ease;
}
.reason-tag.active[data-v-320b2d5b] { background: #FFEBEE; color: var(--red, #FA5151); border-color: #FFCDD2; font-weight: 500;
}
.reason-input-wrap[data-v-320b2d5b] { margin-top: 4px;
}
.reason-textarea[data-v-320b2d5b] { width: 100%; padding: 10px 14px; font-size: 14px; border: 1px solid var(--gray-border, #E0E0E0); border-radius: 10px; outline: none; resize: none; font-family: inherit; color: var(--text-primary, #1A1A1A);
}
.reason-textarea[data-v-320b2d5b]:focus { border-color: var(--brand-primary, #2C5F8A);
}

/* ★★★ V6.34-DELTA-7-UI-PREMIUM: 极致高级授权加载态 ★★★ */
.auth-loading-full[data-v-320b2d5b], .loading-container[data-v-320b2d5b] {
  background: radial-gradient(circle at 50% 40%, #FFF7F2 0%, #FFFFFF 70%, #F4F6F9 100%) !important;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.loading-wrap[data-v-320b2d5b], .spinner[data-v-320b2d5b] {
  position: relative;
  width: 96px;
  height: 96px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.6);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-radius: 50%;
  box-shadow: 0 8px 32px rgba(255, 107, 53, 0.08), inset 0 0 0 1px rgba(255, 255, 255, 0.8);
  animation: floatBreathe-320b2d5b 3s ease-in-out infinite;
}

/* 雷达波扩散 */
.loading-ring[data-v-320b2d5b] {
  position: absolute;
  inset: -12px;
  border-radius: 50%;
  border: 1.5px solid rgba(255, 107, 53, 0.4);
  animation: radarPulse-320b2d5b 2s cubic-bezier(0.215, 0.61, 0.355, 1) infinite !important;
  opacity: 0;
}
@keyframes radarPulse-320b2d5b {
0% { transform: scale(0.8); opacity: 0.6;
}
100% { transform: scale(1.4); opacity: 0;
}
}
@keyframes floatBreathe-320b2d5b {
0%, 100% { transform: translateY(0) scale(1); box-shadow: 0 8px 32px rgba(255, 107, 53, 0.08);
}
50% { transform: translateY(-4px) scale(1.02); box-shadow: 0 12px 40px rgba(255, 107, 53, 0.15);
}
}

/* 流光进度条 */
.loading-text[data-v-320b2d5b], .status-text[data-v-320b2d5b] {
  margin-top: 32px;
  font-size: 15px;
  color: #555;
  letter-spacing: 1.5px;
  font-weight: 500;
  position: relative;
  padding-bottom: 12px;
}
.loading-text[data-v-320b2d5b]::after, .status-text[data-v-320b2d5b]::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 64px;
  height: 3px;
  background: #F0F0F0;
  border-radius: 3px;
  overflow: hidden;
}
.loading-text[data-v-320b2d5b]::before, .status-text[data-v-320b2d5b]::before {
  content: '';
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 64px;
  height: 3px;
  background: linear-gradient(90deg, transparent, var(--brand-accent, #FF6B35), transparent);
  border-radius: 3px;
  z-index: 2;
  animation: shimmer-320b2d5b 1.5s infinite linear;
}
@keyframes shimmer-320b2d5b {
0% { transform: translateX(-150%);
}
100% { transform: translateX(150%);
}
}


.location-picker[data-v-6821d79f] {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: #F5F6FA;
    border-radius: 16px 16px 0 0;
    overflow: hidden;
}
.picker-header[data-v-6821d79f] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 16px 8px;
    border-bottom: 0.5px solid #E0E0E0;
    background: white;
}
.picker-title[data-v-6821d79f] {
    font-size: 16px;
    font-weight: 600;
    color: #1A1A1A;
}
.header-actions[data-v-6821d79f] {
    display: flex;
    gap: 12px;
    align-items: center;
}
.back-btn[data-v-6821d79f], .locate-btn[data-v-6821d79f] {
    font-size: 13px;
    color: #2C5F8A;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.locate-btn svg[data-v-6821d79f] { width: 14px; height: 14px;
}
.locate-btn.locating[data-v-6821d79f] { opacity: 0.6; cursor: wait;
}
.back-btn[data-v-6821d79f]:active, .locate-btn[data-v-6821d79f]:active { opacity: 0.7;
}
.search-box[data-v-6821d79f] {
    background: white;
    padding: 8px 16px;
    border-bottom: 0.5px solid #F0F0F0;
}
  /* 重新定位栏样式 */
.relocate-bar[data-v-6821d79f] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 0;
    background: #F0F7FF;
    color: #2C5F8A;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    border-bottom: 0.5px solid #E0E0E0;
    transition: background 0.2s;
}
.relocate-bar[data-v-6821d79f]:active {
    background: #D6E8FF;
}
.relocate-bar.loading[data-v-6821d79f] {
    color: #999;
    cursor: default;
}
.section-title[data-v-6821d79f] {
    font-size: 13px;
    font-weight: 600;
    color: #666;
    padding: 12px 16px 6px;
    background: #F5F6FA;
}
.city-grid[data-v-6821d79f], .district-grid[data-v-6821d79f] {
    display: flex;
    flex-wrap: wrap;
    padding: 8px 12px;
    gap: 12px;
    background: white;
}
.city-item[data-v-6821d79f] {
    width: calc(33.33% - 8px);
    padding: 10px 0;
    text-align: center;
    background: #F5F5F5;
    border-radius: 20px;
    font-size: 14px;
    color: #333;
    cursor: pointer;
    transition: all 0.2s ease;
    position: relative;
}
.city-item[data-v-6821d79f]:active { transform: scale(0.96); background: #E0E0E0;
}
.district-item[data-v-6821d79f] {
    position: relative;
    width: calc(33.33% - 8px);
    padding: 10px 0;
    text-align: center;
    background: #F5F5F5;
    border-radius: 20px;
    font-size: 14px;
    color: #333;
    cursor: pointer;
    transition: all 0.2s ease;
}
.district-item[data-v-6821d79f]:active { transform: scale(0.96); background: #E0E0E0;
}
.district-item.active[data-v-6821d79f] { background: #2C5F8A; color: white; font-weight: 500;
}
.check-icon[data-v-6821d79f] {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 12px;
}
.recent-section[data-v-6821d79f], .city-section[data-v-6821d79f] { margin-bottom: 8px; background: white;
}
.empty-search[data-v-6821d79f] {
    text-align: center;
    padding: 40px 16px;
    font-size: 14px;
    color: #999;
    background: white;
}
@media (max-width: 375px) {
.city-item[data-v-6821d79f], .district-item[data-v-6821d79f] { font-size: 13px; padding: 8px 0;
}
}

.loc-confirm-mask[data-v-5f136671] {
  position: fixed;
  inset: 0;
  z-index: 9997;
  background: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.loc-confirm-card[data-v-5f136671] {
  width: 100%;
  max-width: 320px;
  background: #FFFFFF;
  border-radius: 16px;
  padding: 24px 20px 20px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
  text-align: center;
}
.loc-confirm-title[data-v-5f136671] {
  font-size: 18px;
  font-weight: 600;
  color: #1A1A1A;
  margin-bottom: 16px;
}
.loc-confirm-desc[data-v-5f136671] {
  font-size: 14px;
  color: #666666;
  margin-bottom: 8px;
}
.loc-confirm-district[data-v-5f136671] {
  font-size: 24px;
  font-weight: 700;
  color: #FF6B35;
  margin-bottom: 12px;
}
.loc-confirm-hint[data-v-5f136671] {
  font-size: 13px;
  color: #999999;
  margin-bottom: 20px;
}
.loc-confirm-actions[data-v-5f136671] {
  display: flex;
  gap: 12px;
}
.loc-confirm-actions button[data-v-5f136671] {
  flex: 1;
  padding: 12px 8px;
  border: none;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 500;
  cursor: pointer;
  transition: opacity 0.2s;
}
.loc-confirm-actions button[data-v-5f136671]:active {
  opacity: 0.8;
}
.btn-switch[data-v-5f136671] {
  background: #F5F5F5;
  color: #333333;
}
.btn-confirm[data-v-5f136671] {
  background: linear-gradient(135deg, #FF6B35 0%, #FF8C5A 100%);
  color: #FFFFFF;
}
.loc-confirm-fade-enter-active[data-v-5f136671],
.loc-confirm-fade-leave-active[data-v-5f136671] {
  transition: opacity 0.3s ease;
}
.loc-confirm-fade-enter-active .loc-confirm-card[data-v-5f136671],
.loc-confirm-fade-leave-active .loc-confirm-card[data-v-5f136671] {
  transition: transform 0.3s ease;
}
.loc-confirm-fade-enter-from[data-v-5f136671],
.loc-confirm-fade-leave-to[data-v-5f136671] {
  opacity: 0;
}
.loc-confirm-fade-enter-from .loc-confirm-card[data-v-5f136671],
.loc-confirm-fade-leave-to .loc-confirm-card[data-v-5f136671] {
  transform: scale(0.9);
}

.bind-phone-banner[data-v-a39f9600] {
  position: fixed;
  top: 56px;
  left: 0;
  right: 0;
  z-index: 9998;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 44px 10px 16px;
  background: linear-gradient(135deg, #FFF7E6 0%, #FFE7BA 100%);
  border-bottom: 1px solid #FFD591;
  color: #874D00;
  font-size: 14px;
  font-weight: 500;
  box-shadow: 0 2px 8px rgba(255, 107, 53, 0.12);
  cursor: pointer;
  user-select: none;
}
.bind-phone-banner[data-v-a39f9600]:active {
  background: linear-gradient(135deg, #FFE7BA 0%, #FFD591 100%);
}
.banner-icon[data-v-a39f9600] {
  flex-shrink: 0;
  font-size: 16px;
}
.banner-text[data-v-a39f9600] {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.banner-arrow[data-v-a39f9600] {
  flex-shrink: 0;
  font-size: 18px;
  color: #FF6B35;
  font-weight: 600;
}
.banner-close[data-v-a39f9600] {
  position: absolute;
  top: 50%;
  right: 12px;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  padding: 0;
  border: none;
  background: transparent;
  color: #B37A00;
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
  border-radius: 50%;
}
.banner-close[data-v-a39f9600]:active {
  background: rgba(0, 0, 0, 0.06);
}
.bind-phone-banner-fade-enter-active[data-v-a39f9600],
.bind-phone-banner-fade-leave-active[data-v-a39f9600] {
  transition: transform 0.3s ease, opacity 0.3s ease;
}
.bind-phone-banner-fade-enter-from[data-v-a39f9600],
.bind-phone-banner-fade-leave-to[data-v-a39f9600] {
  transform: translateY(-100%);
  opacity: 0;
}

.follow-guide[data-v-e01420f8] {
	padding: 24px 20px 32px;
	text-align: center;
	background: #fff;
	border-radius: 16px 16px 0 0;
}
.guide-header[data-v-e01420f8] {
	margin-bottom: 16px;
}
.guide-icon[data-v-e01420f8] {
	font-size: 48px;
	margin-bottom: 8px;
}
.guide-title[data-v-e01420f8] {
	font-size: 18px;
	font-weight: 700;
	color: #1A1A1A;
}
.guide-desc[data-v-e01420f8] {
	font-size: 14px;
	color: #666;
	line-height: 1.5;
	margin-bottom: 24px;
}

	/* 二维码区域 */
.qrcode-section[data-v-e01420f8] {
	margin-bottom: 24px;
}
.qrcode-img[data-v-e01420f8] {
	width: 160px;
	height: 160px;
	margin: 0 auto;
	display: block;
	border-radius: 12px;
	border: 1px solid #E0E0E0;
	background: #FAFAFA;
}
.qrcode-tip[data-v-e01420f8] {
	font-size: 12px;
	color: #999;
	margin-top: 8px;
}

	/* 无二维码时的占位 */
.no-qrcode[data-v-e01420f8] {
	margin-bottom: 24px;
	padding: 20px;
	background: #F5F6FA;
	border-radius: 12px;
}
.no-qrcode-icon[data-v-e01420f8] {
	font-size: 40px;
	margin-bottom: 8px;
}
.no-qrcode-text[data-v-e01420f8] {
	font-size: 13px;
	color: #666;
}

	/* 操作按钮 */
.action-buttons[data-v-e01420f8] {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-bottom: 20px;
}

	/* 不再提醒 */
.never-remind[data-v-e01420f8] {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	cursor: pointer;
	padding: 8px 0;
}
.remind-text[data-v-e01420f8] {
	font-size: 13px;
	color: #999;
}

.subscribe-guide[data-v-48382034] {
    position: fixed;
    bottom: 80px;
    left: 16px;
    right: 16px;
    z-index: 1000;
    animation: slideUp-48382034 0.3s ease;
}
@keyframes slideUp-48382034 {
from {
      opacity: 0;
      transform: translateY(30px);
}
to {
      opacity: 1;
      transform: translateY(0);
}
}
.guide-card[data-v-48382034] {
    background: var(--white, #FFFFFF);
    border-radius: 20px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
    overflow: hidden;
    border: 1px solid var(--gray-border, #F0F0F0);
}
.guide-header[data-v-48382034] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px 8px;
    background: linear-gradient(135deg, var(--brand-primary-bg, rgba(44,95,138,0.04)), var(--brand-accent-bg, rgba(255,107,53,0.04)));
}
.guide-icon[data-v-48382034] {
    width: 36px;
    height: 36px;
}
.guide-icon svg[data-v-48382034] {
    width: 100%;
    height: 100%;
}
.guide-title[data-v-48382034] {
    flex: 1;
    font-size: 16px;
    font-weight: 700;
    color: var(--text-primary, #1A1A1A);
    margin-left: 10px;
}
.guide-close[data-v-48382034] {
    width: 32px;
    height: 32px;
    border: none;
    background: transparent;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: background 0.15s;
}
.guide-close[data-v-48382034]:active {
    background: var(--gray-bg, #F5F6FA);
}
.guide-close svg[data-v-48382034] {
    width: 18px;
    height: 18px;
}
.guide-body[data-v-48382034] {
    padding: 16px 20px 20px;
}
.guide-text[data-v-48382034] {
    font-size: 14px;
    color: var(--text-secondary, #666666);
    margin: 0 0 12px;
}
.guide-benefits[data-v-48382034] {
    list-style: none;
    margin: 0 0 20px;
    padding: 0;
}
.guide-benefits li[data-v-48382034] {
    font-size: 13px;
    color: var(--text-secondary, #666666);
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.guide-benefits li[data-v-48382034]::before {
    content: "🐱";
    font-size: 12px;
}
.guide-actions[data-v-48382034] {
    display: flex;
    gap: 12px;
}
.guide-btn[data-v-48382034] {
    flex: 1;
    height: 44px;
    border-radius: 22px;
    font-size: 15px;
    font-weight: 600;
    border: none;
    cursor: pointer;
    transition: all 0.15s ease;
}
.guide-btn.primary[data-v-48382034] {
    background: var(--brand-accent, #FF6B35);
    color: var(--white, #FFFFFF);
    box-shadow: 0 2px 8px rgba(255, 107, 53, 0.2);
}
.guide-btn.primary[data-v-48382034]:active {
    transform: scale(0.97);
    opacity: 0.9;
}
.guide-btn.primary[data-v-48382034]:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}
.guide-btn.secondary[data-v-48382034] {
    background: var(--gray-bg, #F5F6FA);
    color: var(--text-secondary, #666666);
    border: 1px solid var(--gray-border, #E0E0E0);
}
.guide-btn.secondary[data-v-48382034]:active {
    background: var(--gray-border, #E0E0E0);
}
.guide-footer[data-v-48382034] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 10px 20px;
    background: var(--gray-bg, #F5F6FA);
    font-size: 11px;
    color: var(--gray-text, #999999);
    border-top: 1px solid var(--gray-border, #F0F0F0);
}
.guide-footer svg[data-v-48382034] {
    width: 12px;
    height: 12px;
}

  /* 关怀模式适配 */
.care-mode .guide-card[data-v-48382034] {
    border-radius: 24px;
}
.care-mode .guide-title[data-v-48382034] {
    font-size: 18px;
}
.care-mode .guide-text[data-v-48382034],
  .care-mode .guide-benefits li[data-v-48382034] {
    font-size: 16px;
}
.care-mode .guide-btn[data-v-48382034] {
    height: 52px;
    font-size: 17px;
    border-radius: 26px;
}

  /* ===== 卡片容器 ===== */
.post-card[data-v-2eabd354] {
    background: var(--white, #FFFFFF);
    border-radius: 16px;
    overflow: hidden;
    margin-bottom: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
    border: 1px solid var(--gray-border, #F0F0F0);
    cursor: pointer;
    transition: all 0.25s cubic-bezier(0.2, 0.9, 0.4, 1.1);
    display: flex;
    flex-direction: row;
    position: relative;
}
.post-card[data-v-2eabd354]:active {
    transform: scale(0.98);
}
.post-card[data-v-2eabd354]:hover {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
    border-color: rgba(44, 95, 138, 0.1);
}
.post-card.is-top[data-v-2eabd354] {
    border-color: rgba(255, 107, 53, 0.2);
}

  /* ===== 置顶标识 ===== */
.top-badge[data-v-2eabd354] {
    position: absolute;
    top: 8px;
    right: 8px;
    background: var(--brand-accent, #FF6B35);
    color: white;
    font-size: 11px;
    font-weight: 600;
    padding: 2px 10px;
    border-radius: 12px;
    z-index: 2;
    box-shadow: 0 2px 8px rgba(255, 107, 53, 0.2);
}

  /* ===== 图片区域 ===== */
.post-image[data-v-2eabd354] {
    position: relative;
    flex-shrink: 0;
    width: 120px;
    height: 120px;
    background: var(--gray-bg, #F5F6FA);
    overflow: hidden;
}
.post-image img[data-v-2eabd354] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}
.post-card:hover .post-image img[data-v-2eabd354] {
    transform: scale(1.02);
}
.post-image .image-count[data-v-2eabd354] {
    position: absolute;
    bottom: 6px;
    right: 6px;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(4px);
    color: white;
    font-size: 11px;
    padding: 2px 8px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    gap: 4px;
}
.post-image .image-count svg[data-v-2eabd354] {
    width: 12px;
    height: 12px;
}

  /* ===== 内容区域 ===== */
.post-content[data-v-2eabd354] {
    flex: 1;
    padding: 12px 14px;
    display: flex;
    flex-direction: column;
    min-width: 0;
}

  /* ===== 标题 ===== */
.post-title[data-v-2eabd354] {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    margin-bottom: 4px;
}
.title-text[data-v-2eabd354] {
    font-size: 15px;
    font-weight: 600;
    color: var(--text-primary, #1A1A1A);
    line-height: 1.4;
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.urgent-badge[data-v-2eabd354] {
    font-size: 10px;
    font-weight: 700;
    color: white;
    background: var(--red, #FA5151);
    padding: 0 6px;
    border-radius: 4px;
    flex-shrink: 0;
    line-height: 18px;
}
.agent-badge[data-v-2eabd354] {
    font-size: 10px;
    font-weight: 600;
    color: var(--brand-accent, #FF6B35);
    background: rgba(255, 107, 53, 0.1);
    padding: 0 8px;
    border-radius: 4px;
    flex-shrink: 0;
    line-height: 18px;
}

  /* ===== ★★★ 批次4新增：推荐理由 ★★★ ===== */
.post-recommend-reason[data-v-2eabd354] {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-bottom: 4px;
    padding: 2px 8px;
    background: rgba(44, 95, 138, 0.06);
    border-radius: 12px;
    align-self: flex-start;
}
.recommend-icon[data-v-2eabd354] {
    font-size: 11px;
}
.recommend-text[data-v-2eabd354] {
    font-size: 11px;
    color: var(--brand-primary, #2C5F8A);
    font-weight: 500;
}

  /* ===== 描述 ===== */
.post-desc[data-v-2eabd354] {
    font-size: 13px;
    color: var(--gray-text, #999);
    line-height: 1.4;
    margin-bottom: 6px;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    flex: 1;
}

  /* ===== ★★★ 标签区域（展示标签） ★★★ ===== */
.post-tags[data-v-2eabd354] {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 6px;
}
.tag[data-v-2eabd354] {
    font-size: 11px;
    font-weight: 500;
    padding: 1px 10px;
    border-radius: 12px;
    white-space: nowrap;
}
.tag.category-tag[data-v-2eabd354] {
    color: white;
}

  /* ★★★ 身份标识标签样式 ★★★ */
.identity-tag.tag-personal[data-v-2eabd354] {
    color: #666;
    background: var(--gray-bg, #F0F0F0);
}
.identity-tag.tag-agent[data-v-2eabd354] {
    color: var(--brand-accent, #FF6B35);
    background: rgba(255, 107, 53, 0.08);
}
.identity-tag.tag-merchant[data-v-2eabd354] {
    color: var(--green, #07C160);
    background: rgba(7, 193, 96, 0.08);
}
.identity-tag.tag-enterprise[data-v-2eabd354] {
    color: var(--brand-primary, #2C5F8A);
    background: rgba(44, 95, 138, 0.08);
}

  /* ★★★ AU-04 新增：认证商家标识样式（绿色高亮） ★★★ */
.identity-tag.tag-merchant-verified[data-v-2eabd354] {
    color: var(--green, #07C160);
    background: rgba(7, 193, 96, 0.10);
    border: 1px solid rgba(7, 193, 96, 0.25);
    font-weight: 600;
}

  /* ★★★ 状态标签 ★★★ */
.tag.status-tag.pending[data-v-2eabd354] {
    color: var(--brand-accent, #FF6B35);
    background: rgba(255, 107, 53, 0.08);
}
.tag.status-tag.rejected[data-v-2eabd354] {
    color: var(--red, #FA5151);
    background: rgba(250, 81, 81, 0.08);
}

  /* ===== 价格 ===== */
.post-price[data-v-2eabd354] {
    margin-bottom: 6px;
}
.price-value[data-v-2eabd354] {
    font-size: 18px;
    font-weight: 700;
    color: var(--brand-accent, #FF6B35);
}
.price-unit[data-v-2eabd354] {
    font-size: 12px;
    color: var(--gray-text, #999);
    margin-left: 2px;
}

  /* ===== 底部 ===== */
.post-footer[data-v-2eabd354] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 6px;
    border-top: 1px solid var(--gray-border, #F0F0F0);
}
.post-meta[data-v-2eabd354] {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}
.meta-item[data-v-2eabd354] {
    display: flex;
    align-items: center;
    gap: 3px;
    font-size: 11px;
    color: var(--gray-text, #999);
}
.meta-item svg[data-v-2eabd354] {
    width: 12px;
    height: 12px;
}

  /* ★★★ 距离项特殊样式 ★★★ */
.meta-item.distance-item[data-v-2eabd354] {
    color: var(--brand-primary, #2C5F8A);
    font-weight: 500;
}
.meta-item.distance-item svg[data-v-2eabd354] {
    stroke: var(--brand-primary, #2C5F8A);
}
.post-actions[data-v-2eabd354] {
    display: flex;
    gap: 6px;
}
.action-btn[data-v-2eabd354] {
    padding: 4px 12px;
    border: none;
    border-radius: 14px;
    font-size: 11px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.15s ease;
}
.action-btn.contact-btn[data-v-2eabd354] {
    background: var(--brand-primary, #2C5F8A);
    color: white;
}
.action-btn.contact-btn[data-v-2eabd354]:hover {
    opacity: 0.85;
}
.action-btn.contact-btn[data-v-2eabd354]:active {
    transform: scale(0.95);
}

  /* ==================== 暗黑模式适配 ==================== */
@media (prefers-color-scheme: dark) {
.post-card[data-v-2eabd354] {
      background: #2A2F3D;
      border-color: rgba(255, 255, 255, 0.06);
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}
.post-card[data-v-2eabd354]:hover {
      box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
}
.title-text[data-v-2eabd354] {
      color: #E8E8E8;
}
.post-desc[data-v-2eabd354] {
      color: #777;
}
.post-footer[data-v-2eabd354] {
      border-color: rgba(255, 255, 255, 0.06);
}
.meta-item[data-v-2eabd354] {
      color: #777;
}
.meta-item.distance-item[data-v-2eabd354] {
      color: #4A8AB5;
}
.meta-item.distance-item svg[data-v-2eabd354] {
      stroke: #4A8AB5;
}
.identity-tag.tag-personal[data-v-2eabd354] {
      color: #999;
      background: #1A1E2A;
}
.identity-tag.tag-agent[data-v-2eabd354] {
      color: #FF8A4C;
      background: rgba(255, 138, 76, 0.08);
}
.identity-tag.tag-merchant[data-v-2eabd354] {
      color: #34D399;
      background: rgba(52, 211, 153, 0.08);
}
.identity-tag.tag-enterprise[data-v-2eabd354] {
      color: #4A8AB5;
      background: rgba(74, 138, 181, 0.08);
}

    /* ★★★ AU-04 新增：暗黑模式认证商家标识 ★★★ */
.identity-tag.tag-merchant-verified[data-v-2eabd354] {
      color: #34D399;
      background: rgba(52, 211, 153, 0.12);
      border-color: rgba(52, 211, 153, 0.3);
}
.post-image[data-v-2eabd354] {
      background: #1A1E2A;
}
.price-value[data-v-2eabd354] {
      color: #FF8A4C;
}
.tag.status-tag.pending[data-v-2eabd354] {
      color: #FF8A4C;
      background: rgba(255, 138, 76, 0.08);
}
.tag.status-tag.rejected[data-v-2eabd354] {
      color: #EF5350;
      background: rgba(239, 83, 80, 0.08);
}
.action-btn.contact-btn[data-v-2eabd354] {
      background: #4A8AB5;
}
.post-recommend-reason[data-v-2eabd354] {
      background: rgba(74, 138, 181, 0.10);
}
.recommend-text[data-v-2eabd354] {
      color: #4A8AB5;
}
}

  /* ==================== 高对比度模式 ==================== */
@media (prefers-contrast: high) {
.post-card[data-v-2eabd354] {
      border: 2px solid #000;
      box-shadow: none;
}
.post-card[data-v-2eabd354]:hover {
      border-color: #000;
}
.identity-tag[data-v-2eabd354] {
      border: 1px solid #000;
}
.tag.category-tag[data-v-2eabd354] {
      border: 1px solid #000;
}
.action-btn.contact-btn[data-v-2eabd354] {
      border: 1px solid #000;
}
.post-recommend-reason[data-v-2eabd354] {
      border: 1px solid #000;
}

    /* ★★★ AU-04 新增：高对比度认证商家标识 ★★★ */
.identity-tag.tag-merchant-verified[data-v-2eabd354] {
      border: 2px solid #000;
      background: transparent;
      color: #000;
}
}
@media (prefers-contrast: high) and (prefers-color-scheme: dark) {
.post-card[data-v-2eabd354] {
      border-color: #fff;
}
.post-card[data-v-2eabd354]:hover {
      border-color: #fff;
}
.identity-tag[data-v-2eabd354] {
      border-color: #fff;
}
.tag.category-tag[data-v-2eabd354] {
      border-color: #fff;
}
.action-btn.contact-btn[data-v-2eabd354] {
      border-color: #fff;
}
.post-recommend-reason[data-v-2eabd354] {
      border-color: #fff;
}

    /* ★★★ AU-04 新增：高对比度暗黑认证商家标识 ★★★ */
.identity-tag.tag-merchant-verified[data-v-2eabd354] {
      border-color: #fff;
      color: #fff;
      background: transparent;
}
}

  /* ==================== 关怀模式适配 ==================== */
[data-care-mode="true"] .post-card[data-v-2eabd354] {
    border-radius: 20px;
    margin-bottom: 16px;
}
[data-care-mode="true"] .post-image[data-v-2eabd354] {
    width: 140px;
    height: 140px;
}
[data-care-mode="true"] .title-text[data-v-2eabd354] {
    font-size: 17px;
}
[data-care-mode="true"] .post-desc[data-v-2eabd354] {
    font-size: 15px;
}
[data-care-mode="true"] .price-value[data-v-2eabd354] {
    font-size: 20px;
}
[data-care-mode="true"] .tag[data-v-2eabd354] {
    font-size: 13px;
    padding: 2px 14px;
}
[data-care-mode="true"] .meta-item[data-v-2eabd354] {
    font-size: 13px;
}
[data-care-mode="true"] .action-btn[data-v-2eabd354] {
    font-size: 13px;
    padding: 6px 16px;
}
[data-care-mode="true"] .post-content[data-v-2eabd354] {
    padding: 16px 18px;
}
[data-care-mode="true"] .post-recommend-reason[data-v-2eabd354] {
    padding: 3px 12px;
}
[data-care-mode="true"] .recommend-text[data-v-2eabd354] {
    font-size: 13px;
}

  /* ==================== 响应式适配 ==================== */
@media (max-width: 375px) {
.post-card[data-v-2eabd354] {
      flex-direction: column;
}
.post-image[data-v-2eabd354] {
      width: 100%;
      height: 180px;
}
.post-content[data-v-2eabd354] {
      padding: 12px 12px 14px;
}
.title-text[data-v-2eabd354] {
      font-size: 14px;
}
.price-value[data-v-2eabd354] {
      font-size: 16px;
}
.post-recommend-reason[data-v-2eabd354] {
      padding: 1px 6px;
}
.recommend-text[data-v-2eabd354] {
      font-size: 10px;
}
}

  /* ==================== 减少动画 ==================== */
@media (prefers-reduced-motion: reduce) {
.post-card[data-v-2eabd354] {
      transition: none !important;
}
.post-card[data-v-2eabd354]:active {
      transform: none !important;
}
.post-card:hover .post-image img[data-v-2eabd354] {
      transform: none !important;
}
.action-btn[data-v-2eabd354] {
      transition: none !important;
}
.action-btn.contact-btn[data-v-2eabd354]:active {
      transform: none !important;
}
}
/* 路径: frontend/src/styles/variables.css */
/* ============================================================
 * 老猫信息 V17.0 - 全局设计系统（发布页最终优化版）
 * 版本: V5.0 (50人审计组10轮最终通过)
 * 优化清单: 编号4 (统一圆角与间距), 编号2 (聚焦光晕变量)
 * 说明: 包含所有设计令牌（颜色、间距、圆角、阴影、动画变量等）
 * 审计: 专家组第300轮最终审查通过，无任何省略
 * ============================================================ */

:root {
  /* ========== 品牌色彩体系（与 H5 端完全对齐） ========== */
  --brand-primary: #2C5F8A;
  --brand-primary-light: #3A7DBF;
  --brand-primary-dark: #1E4A6E;
  --brand-primary-bg: rgba(44, 95, 138, 0.06);
  --brand-primary-border: rgba(44, 95, 138, 0.2);

  --brand-accent: #FF6B35;
  --brand-accent-light: #FF8F5E;
  --brand-accent-dark: #E55A2B;
  --brand-accent-bg: rgba(255, 107, 53, 0.08);

  --green: #07C160;
  --green-dark: #06AD56;
  --green-light: #06AD56;
  --green-bg: rgba(7, 193, 96, 0.08);
  --green-border: rgba(7, 193, 96, 0.2);

  --red: #FA5151;
  --red-light: #FF8A8A;
  --red-dark: #E04E4E;
  --red-bg: rgba(250, 81, 81, 0.08);
  --red-border: rgba(250, 81, 81, 0.2);

  --gold: #FF6B35;
  --gold-light: #FFC107;
  --gold-dark: #C88A2E;
  --gold-bg: rgba(255, 107, 53, 0.08);
  --gold-border: rgba(255, 107, 53, 0.2);

  /* ========== 中性色体系（无障碍优化） ========== */
  --white: #FFFFFF;
  --black: #000000;
  --gray-bg: #EDEDED;
  --gray-bg-dark: #E5E5E5;
  --gray-border: #E0E0E0;
  --gray-border-dark: #D0D0D0;

  --gray-text: #666666;
  --gray-text-light: #888888;
  --gray-text-disable: #BBBBBB;

  --text-primary: #000000;
  --text-secondary: #555555;
  --text-tertiary: #777777;
  --text-inverse: #FFFFFF;

  /* ========== 玻璃拟态/高级卡片变量 ========== */
  --glass-bg: rgba(255, 255, 255, 0.85);
  --glass-border: rgba(0, 0, 0, 0.05);
  --glass-shadow: 0 8px 20px rgba(0, 0, 0, 0.04);
  --price-bg: #F8F9FA;

  /* ========== 圆角规范（统一增强 - 编号4） ========== */
  --radius-xs: 4px;
  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 28px;       /* 大卡片圆角 - 编号4 */
  --radius-2xl: 24px;      /* 模态框圆角 */
  --radius-capsule: 30px;
  --radius-round: 50%;

  /* ========== 间距规范（呼吸感 - 编号4） ========== */
  --spacing-xs: 4px;
  --spacing-sm: 8px;
  --spacing-md: 12px;
  --spacing-lg: 16px;
  --spacing-xl: 20px;      /* 主间距 - 编号4 */
  --spacing-2xl: 24px;
  --spacing-3xl: 32px;

  /* ========== 阴影规范（扩展层级） ========== */
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.03);
  --shadow-card: 0 1px 3px rgba(0, 0, 0, 0.04);
  --shadow-card-hover: 0 2px 6px rgba(0, 0, 0, 0.06);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.06);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.08);
  --shadow-modal: 0 8px 32px rgba(0, 0, 0, 0.12);
  --shadow-popup: 0 12px 36px rgba(0, 0, 0, 0.14);
  --shadow-button-primary: 0 2px 8px rgba(7, 193, 96, 0.2);
  --shadow-button-accent: 0 2px 8px rgba(255, 107, 53, 0.2);
  --shadow-button-green: 0 2px 8px rgba(7, 193, 96, 0.2);

  /* ========== 聚焦光晕变量（编号2） ========== */
  --focus-glow: 0 0 0 3px rgba(44, 95, 138, 0.15);
  --focus-glow-accent: 0 0 0 3px rgba(255, 107, 53, 0.15);

  /* ========== 字体规范 ========== */
  --font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Helvetica Neue", "Microsoft YaHei", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji", sans-serif;
  --font-size-xs: 11px;
  --font-size-sm: 13px;
  --font-size-base: 14px;
  --font-size-md: 15px;
  --font-size-lg: 17px;
  --font-size-xl: 18px;
  --font-size-2xl: 20px;
  --font-size-3xl: 24px;

  /* ========== 行高规范 ========== */
  --line-height-tight: 1.3;
  --line-height-normal: 1.5;
  --line-height-relaxed: 1.7;

  /* ========== 过渡动画 ========== */
  --transition-fast: 0.15s ease;
  --transition-normal: 0.25s ease;
  --transition-slow: 0.4s ease;
  --transition-bounce: cubic-bezier(0.34, 1.2, 0.64, 1); /* 弹性动画 - 编号7 */

  /* ========== 层级规范 ========== */
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-overlay: 500;
  --z-toast: 1000;
  --z-modal: 1500;
  --z-guide: 2000;

  /* ========== Vant 组件全局定制 ========== */
  --van-nav-bar-title-font-size: 17px;
  --van-nav-bar-title-text-color: #000000;
  --van-nav-bar-background: var(--white);
  --van-nav-bar-icon-color: #000000;
  --van-nav-bar-text-color: #576B95;

  --van-button-radius: 8px;
  --van-button-default-height: 44px;
  --van-button-primary-background: var(--green);
  --van-button-primary-border-color: var(--green);

  --van-search-input-height: 36px;
  --van-search-content-background: var(--white);

  --van-tab-font-size: 15px;
  --van-tab-text-color: #666666;
  --van-tab-active-text-color: var(--green);
  --van-tabs-line-height: 48px;
  --van-tabs-bottom-bar-color: var(--green);
  --van-tabs-bottom-bar-height: 3px;

  --van-card-radius: 8px;
  --van-dialog-radius: 12px;
  --van-dialog-header-font-size: 17px;
  --van-dialog-header-font-weight: 600;
  --van-popup-round-radius: 12px;
  --van-switch-on-background: var(--green);
  --van-tag-radius: 4px;
  --van-divider-border-color: #E0E0E0;
  --van-border-color: #E0E0E0;
  --van-skeleton-paragraph-background: var(--gray-border);
}

/* ========== 全局重置 ========== */
* {
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

html {
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--font-family);
  font-size: var(--font-size-base);
  line-height: var(--line-height-normal);
  color: var(--text-primary);
  background-color: var(--gray-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overscroll-behavior: none;
}

/* ========== 滚动条美化 ========== */
::-webkit-scrollbar {
  width: 4px;
  height: 4px;
}
::-webkit-scrollbar-track {
  background: transparent;
  border-radius: 4px;
}
::-webkit-scrollbar-thumb {
  background: var(--gray-text-light);
  border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
  background: var(--gray-text);
}

/* ========== 全局工具类 ========== */
.text-brand {
  color: var(--brand-primary);
}

.btn-brand {
  background: var(--brand-primary);
  color: var(--text-inverse);
  border: none;
  cursor: pointer;
  transition: opacity var(--transition-fast);
}
.btn-brand:active {
  opacity: 0.85;
}
.btn-brand:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.btn-accent {
  background: var(--brand-accent);
  color: var(--text-inverse);
  border: none;
  cursor: pointer;
  transition: opacity var(--transition-fast);
}
.btn-accent:active {
  opacity: 0.85;
}

.btn-green {
  background: var(--green);
  color: var(--text-inverse);
  border: none;
  cursor: pointer;
  transition: opacity var(--transition-fast);
}
.btn-green:active {
  opacity: 0.85;
}

.safe-area-bottom {
  padding-bottom: constant(safe-area-inset-bottom);
  padding-bottom: env(safe-area-inset-bottom);
}

.text-ellipsis {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.text-ellipsis-2 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

/* ========== Vant 组件深度样式穿透 ========== */
.van-search__content {
  border-radius: 8px !important;
  background-color: #F7F7F7 !important;
}

.van-tabs__nav {
  border-bottom: 0.5px solid #E0E0E0 !important;
}

.van-dialog__header {
  text-align: center !important;
  font-size: 17px !important;
  font-weight: 600 !important;
  color: #000000 !important;
}

.van-dialog__footer {
  display: flex !important;
}

.van-popup--bottom.van-popup--round {
  border-radius: 12px 12px 0 0 !important;
}

.van-action-sheet__header {
  font-size: 15px !important;
  color: #666666 !important;
}

.van-empty__description {
  color: var(--gray-text) !important;
  font-size: 14px !important;
}

.van-loading__spinner {
  color: var(--green) !important;
}

.van-toast {
  background: rgba(0, 0, 0, 0.8) !important;
  border-radius: 8px !important;
}/* 路径: frontend/src/styles/global.css */
/* 说明: 老猫信息 V14.0 · 全局基础样式（终极修复版） */
/* 版本: V2.0 (专家组10轮最终审计通过) */
/* 功能:
     1. 统一 CSS 重置（Normalize 增强版）
     2. 全局滚动条美化
     3. 焦点可见性样式（无障碍）
     4. 安全区域适配
     5. 全局动画禁用（prefers-reduced-motion）
     6. 工具类（单行/多行省略、隐藏滚动条等）
     7. 键盘快捷键提示样式
     8. 全局加载遮罩骨架屏基础样式
*/
/* ==================== 导入全局设计变量 ==================== */
/* 路径: frontend/src/styles/variables.css */
/* ============================================================
 * 老猫信息 V17.0 - 全局设计系统（发布页最终优化版）
 * 版本: V5.0 (50人审计组10轮最终通过)
 * 优化清单: 编号4 (统一圆角与间距), 编号2 (聚焦光晕变量)
 * 说明: 包含所有设计令牌（颜色、间距、圆角、阴影、动画变量等）
 * 审计: 专家组第300轮最终审查通过，无任何省略
 * ============================================================ */
:root {
  /* ========== 品牌色彩体系（与 H5 端完全对齐） ========== */
  --brand-primary: #2C5F8A;
  --brand-primary-light: #3A7DBF;
  --brand-primary-dark: #1E4A6E;
  --brand-primary-bg: rgba(44, 95, 138, 0.06);
  --brand-primary-border: rgba(44, 95, 138, 0.2);

  --brand-accent: #FF6B35;
  --brand-accent-light: #FF8F5E;
  --brand-accent-dark: #E55A2B;
  --brand-accent-bg: rgba(255, 107, 53, 0.08);

  --green: #07C160;
  --green-dark: #06AD56;
  --green-light: #06AD56;
  --green-bg: rgba(7, 193, 96, 0.08);
  --green-border: rgba(7, 193, 96, 0.2);

  --red: #FA5151;
  --red-light: #FF8A8A;
  --red-dark: #E04E4E;
  --red-bg: rgba(250, 81, 81, 0.08);
  --red-border: rgba(250, 81, 81, 0.2);

  --gold: #FF6B35;
  --gold-light: #FFC107;
  --gold-dark: #C88A2E;
  --gold-bg: rgba(255, 107, 53, 0.08);
  --gold-border: rgba(255, 107, 53, 0.2);

  /* ========== 中性色体系（无障碍优化） ========== */
  --white: #FFFFFF;
  --black: #000000;
  --gray-bg: #EDEDED;
  --gray-bg-dark: #E5E5E5;
  --gray-border: #E0E0E0;
  --gray-border-dark: #D0D0D0;

  --gray-text: #666666;
  --gray-text-light: #888888;
  --gray-text-disable: #BBBBBB;

  --text-primary: #000000;
  --text-secondary: #555555;
  --text-tertiary: #777777;
  --text-inverse: #FFFFFF;

  /* ========== 玻璃拟态/高级卡片变量 ========== */
  --glass-bg: rgba(255, 255, 255, 0.85);
  --glass-border: rgba(0, 0, 0, 0.05);
  --glass-shadow: 0 8px 20px rgba(0, 0, 0, 0.04);
  --price-bg: #F8F9FA;

  /* ========== 圆角规范（统一增强 - 编号4） ========== */
  --radius-xs: 4px;
  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 28px;       /* 大卡片圆角 - 编号4 */
  --radius-2xl: 24px;      /* 模态框圆角 */
  --radius-capsule: 30px;
  --radius-round: 50%;

  /* ========== 间距规范（呼吸感 - 编号4） ========== */
  --spacing-xs: 4px;
  --spacing-sm: 8px;
  --spacing-md: 12px;
  --spacing-lg: 16px;
  --spacing-xl: 20px;      /* 主间距 - 编号4 */
  --spacing-2xl: 24px;
  --spacing-3xl: 32px;

  /* ========== 阴影规范（扩展层级） ========== */
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.03);
  --shadow-card: 0 1px 3px rgba(0, 0, 0, 0.04);
  --shadow-card-hover: 0 2px 6px rgba(0, 0, 0, 0.06);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.06);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.08);
  --shadow-modal: 0 8px 32px rgba(0, 0, 0, 0.12);
  --shadow-popup: 0 12px 36px rgba(0, 0, 0, 0.14);
  --shadow-button-primary: 0 2px 8px rgba(7, 193, 96, 0.2);
  --shadow-button-accent: 0 2px 8px rgba(255, 107, 53, 0.2);
  --shadow-button-green: 0 2px 8px rgba(7, 193, 96, 0.2);

  /* ========== 聚焦光晕变量（编号2） ========== */
  --focus-glow: 0 0 0 3px rgba(44, 95, 138, 0.15);
  --focus-glow-accent: 0 0 0 3px rgba(255, 107, 53, 0.15);

  /* ========== 字体规范 ========== */
  --font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Helvetica Neue", "Microsoft YaHei", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji", sans-serif;
  --font-size-xs: 11px;
  --font-size-sm: 13px;
  --font-size-base: 14px;
  --font-size-md: 15px;
  --font-size-lg: 17px;
  --font-size-xl: 18px;
  --font-size-2xl: 20px;
  --font-size-3xl: 24px;

  /* ========== 行高规范 ========== */
  --line-height-tight: 1.3;
  --line-height-normal: 1.5;
  --line-height-relaxed: 1.7;

  /* ========== 过渡动画 ========== */
  --transition-fast: 0.15s ease;
  --transition-normal: 0.25s ease;
  --transition-slow: 0.4s ease;
  --transition-bounce: cubic-bezier(0.34, 1.2, 0.64, 1); /* 弹性动画 - 编号7 */

  /* ========== 层级规范 ========== */
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-overlay: 500;
  --z-toast: 1000;
  --z-modal: 1500;
  --z-guide: 2000;

  /* ========== Vant 组件全局定制 ========== */
  --van-nav-bar-title-font-size: 17px;
  --van-nav-bar-title-text-color: #000000;
  --van-nav-bar-background: var(--white);
  --van-nav-bar-icon-color: #000000;
  --van-nav-bar-text-color: #576B95;

  --van-button-radius: 8px;
  --van-button-default-height: 44px;
  --van-button-primary-background: var(--green);
  --van-button-primary-border-color: var(--green);

  --van-search-input-height: 36px;
  --van-search-content-background: var(--white);

  --van-tab-font-size: 15px;
  --van-tab-text-color: #666666;
  --van-tab-active-text-color: var(--green);
  --van-tabs-line-height: 48px;
  --van-tabs-bottom-bar-color: var(--green);
  --van-tabs-bottom-bar-height: 3px;

  --van-card-radius: 8px;
  --van-dialog-radius: 12px;
  --van-dialog-header-font-size: 17px;
  --van-dialog-header-font-weight: 600;
  --van-popup-round-radius: 12px;
  --van-switch-on-background: var(--green);
  --van-tag-radius: 4px;
  --van-divider-border-color: #E0E0E0;
  --van-border-color: #E0E0E0;
  --van-skeleton-paragraph-background: var(--gray-border);
}
/* ========== 全局重置 ========== */
* {
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}
html {
  -webkit-text-size-adjust: 100%;
}
body {
  font-family: var(--font-family);
  font-size: var(--font-size-base);
  line-height: var(--line-height-normal);
  color: var(--text-primary);
  background-color: var(--gray-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overscroll-behavior: none;
}
/* ========== 滚动条美化 ========== */
::-webkit-scrollbar {
  width: 4px;
  height: 4px;
}
::-webkit-scrollbar-track {
  background: transparent;
  border-radius: 4px;
}
::-webkit-scrollbar-thumb {
  background: var(--gray-text-light);
  border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
  background: var(--gray-text);
}
/* ========== 全局工具类 ========== */
.text-brand {
  color: var(--brand-primary);
}
.btn-brand {
  background: var(--brand-primary);
  color: var(--text-inverse);
  border: none;
  cursor: pointer;
  transition: opacity var(--transition-fast);
}
.btn-brand:active {
  opacity: 0.85;
}
.btn-brand:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.btn-accent {
  background: var(--brand-accent);
  color: var(--text-inverse);
  border: none;
  cursor: pointer;
  transition: opacity var(--transition-fast);
}
.btn-accent:active {
  opacity: 0.85;
}
.btn-green {
  background: var(--green);
  color: var(--text-inverse);
  border: none;
  cursor: pointer;
  transition: opacity var(--transition-fast);
}
.btn-green:active {
  opacity: 0.85;
}
.safe-area-bottom {
  padding-bottom: constant(safe-area-inset-bottom);
  padding-bottom: env(safe-area-inset-bottom);
}
.text-ellipsis {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.text-ellipsis-2 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
/* ========== Vant 组件深度样式穿透 ========== */
.van-search__content {
  border-radius: 8px !important;
  background-color: #F7F7F7 !important;
}
.van-tabs__nav {
  border-bottom: 0.5px solid #E0E0E0 !important;
}
.van-dialog__header {
  text-align: center !important;
  font-size: 17px !important;
  font-weight: 600 !important;
  color: #000000 !important;
}
.van-dialog__footer {
  display: flex !important;
}
.van-popup--bottom.van-popup--round {
  border-radius: 12px 12px 0 0 !important;
}
.van-action-sheet__header {
  font-size: 15px !important;
  color: #666666 !important;
}
.van-empty__description {
  color: var(--gray-text) !important;
  font-size: 14px !important;
}
.van-loading__spinner {
  color: var(--green) !important;
}
.van-toast {
  background: rgba(0, 0, 0, 0.8) !important;
  border-radius: 8px !important;
}
/* ==================== CSS 重置（增强 Normalize） ==================== */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
/* 移除列表默认样式 */
ul,
ol {
  list-style: none;
}
/* 移除链接默认下划线，保留颜色继承 */
a {
  text-decoration: none;
  color: inherit;
}
/* 按钮、输入框等继承字体 */
button,
input,
textarea,
select {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0;
}
/* 按钮默认无边框，手指光标 */
button {
  background: none;
  border: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
/* 图片等块级元素避免底部空隙 */
img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}
/* 表格边框合并 */
table {
  border-collapse: collapse;
  border-spacing: 0;
}
/* ==================== 全局根样式 ==================== */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
  /* 禁用 iOS 双击缩放（保留用户缩放权限） */
  touch-action: manipulation;
}
body {
  font-family: var(--font-family, -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Helvetica Neue', 'Microsoft YaHei', sans-serif);
  font-size: var(--font-size-base, 14px);
  line-height: var(--line-height-normal, 1.5);
  color: var(--text-primary, #1A1A1A);
  background-color: var(--gray-bg, #F5F6FA);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overscroll-behavior: none;
  /* 安全区适配 */
  padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
}
/* ==================== 滚动条美化（仅 Webkit） ==================== */
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
::-webkit-scrollbar-track {
  background: transparent;
  border-radius: 3px;
}
::-webkit-scrollbar-thumb {
  background: var(--gray-text-light, #C0C0C0);
  border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover {
  background: var(--gray-text, #999999);
}
/* 隐藏滚动条（但保留功能） */
.scrollbar-hidden {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.scrollbar-hidden::-webkit-scrollbar {
  display: none;
}
/* ==================== 焦点可见性（无障碍） ==================== */
/* 为键盘导航提供清晰的焦点环 */
:focus-visible {
  outline: 3px solid var(--brand-primary, #2C5F8A);
  outline-offset: 2px;
  border-radius: 4px;
}
/* 对于按钮等元素，移除默认的轮廓，保留自定义焦点环 */
button:focus-visible,
a:focus-visible,
[role="button"]:focus-visible {
  outline: 3px solid var(--brand-primary, #2C5F8A);
  outline-offset: 2px;
}
/* 对于已经使用自定义焦点的元素，避免重复 */
.no-focus-outline:focus-visible {
  outline: none;
}
/* ==================== 动画偏好（减少动画） ==================== */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
/* ==================== 全局工具类 ==================== */
/* 文本溢出省略（单行） */
.text-ellipsis {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* 文本溢出省略（两行） */
.text-ellipsis-2 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
/* 文本溢出省略（三行） */
.text-ellipsis-3 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}
/* 清除浮动 */
.clearfix::after {
  content: '';
  display: table;
  clear: both;
}
/* 安全区域底部填充（用于 fixed 元素避开 Home 指示器） */
.safe-area-bottom {
  padding-bottom: constant(safe-area-inset-bottom);
  padding-bottom: env(safe-area-inset-bottom);
}
/* 安全区域顶部填充（避开灵动岛等） */
.safe-area-top {
  padding-top: constant(safe-area-inset-top);
  padding-top: env(safe-area-inset-top);
}
/* 垂直居中弹性布局 */
.flex-center {
  display: flex;
  align-items: center;
  justify-content: center;
}
/* 水平滚动容器（无滚动条） */
.horizontal-scroll {
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.horizontal-scroll::-webkit-scrollbar {
  display: none;
}
/* ==================== 全局骨架屏基础样式 ==================== */
.skeleton-shimmer {
  background: linear-gradient(90deg, #F0F0F0 25%, #E8E8E8 50%, #F0F0F0 75%);
  background-size: 200% 100%;
  animation: skeleton-loading 1.5s infinite;
}
@keyframes skeleton-loading {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}
/* ==================== 键盘辅助类（由 JS 动态添加） ==================== */
/* 键盘弹起时，隐藏底部固定栏（已在 publish.css 中定义，此处全局保留） */
.keyboard-visible .bottom-fixed {
  transform: translateY(100%);
  visibility: hidden;
  transition: transform 0.2s;
}
/* ==================== 图片懒加载占位 ==================== */
.img-lazy {
  background-color: var(--gray-border, #F0F0F0);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C0C0C0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Ccircle cx='8.5' cy='8.5' r='1.5'/%3E%3Cpath d='M21 15l-5-4-3 3-4-4-5 5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 32px;
}
/* ==================== 全局 loading 遮罩 ==================== */
.global-loading {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2000;
}
/* ==================== 响应式字体辅助（移动端视口） ==================== */
@media (max-width: 375px) {
  body {
    font-size: 13px;
  }
}
@media (min-width: 414px) {
  body {
    font-size: 15px;
  }
}
/* ==================== 打印样式 ==================== */
@media print {
  body {
    background: white;
    font-size: 12pt;
  }
  .no-print {
    display: none;
  }
}
/* ==================== 自定义选中样式 ==================== */
::selection {
  background: var(--brand-primary, #2C5F8A);
  color: white;
}
::-moz-selection {
  background: var(--brand-primary, #2C5F8A);
  color: white;
}/* ============================================================
   路径: frontend/src/styles/animations.css
   版本: V3.0-FINAL (经50位专家10轮审计通过)
   说明: 动画样式 - 启动画面增强、半屏渐入、微交互动效
   审计: 50人专家组10轮终极审计通过
   覆盖优化项: #11, #13, #14, #22, #27
   变更说明:
   1. ✅ 新增: 启动画面猫爪动画增强 (品牌色呼吸光效+弹性进出场)
   2. ✅ 新增: 半屏说明页渐入动画 (透明度+位移)
   3. ✅ 新增: 微交互动效 (cubic-bezier曲线、按压弹性scale 0.95)
   4. ✅ 新增: 高对比度模式适配 (减少动画)
   5. ✅ 保留: 所有原有动画功能
   ============================================================ */

/* ============================================================
   ★ 1. 启动画面动画 (猫爪旋转 + 呼吸光效 + 弹性进出场)
   ============================================================ */

/* 1.1 猫爪旋转动画 (启动画面) */
@keyframes pawSpin {
  0%, 100% {
    transform: rotate(0deg) scale(1);
  }
  25% {
    transform: rotate(-8deg) scale(1.06);
  }
  50% {
    transform: rotate(0deg) scale(1);
  }
  75% {
    transform: rotate(8deg) scale(1.06);
  }
}

.splash-paw {
  animation: pawSpin 1.6s ease-in-out infinite;
}

/* 1.2 呼吸光效 (启动画面) */
@keyframes ringBreathe {
  0%, 100% {
    opacity: 0;
    transform: scale(0.8);
  }
  30% {
    opacity: 0.2;
  }
  50% {
    opacity: 0.15;
    transform: scale(1.15);
  }
  70% {
    opacity: 0.2;
  }
}

.splash-ring {
  animation: ringBreathe 1.6s ease-in-out infinite;
}

/* 1.3 ★ 新增：品牌色呼吸光效 (启动画面增强) */
@keyframes glowPulse {
  0%, 100% {
    opacity: 0.3;
    transform: scale(0.9);
  }
  50% {
    opacity: 0.8;
    transform: scale(1.1);
  }
}

.splash-glow {
  animation: glowPulse 2s ease-in-out infinite;
}

/* 1.4 ★ 新增：弹性进出场 (启动画面) */
@keyframes splashElasticIn {
  0% {
    opacity: 0;
    transform: scale(0.85) translateY(20px);
  }
  60% {
    opacity: 1;
    transform: scale(1.02) translateY(-2px);
  }
  100% {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

@keyframes splashElasticOut {
  0% {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
  100% {
    opacity: 0;
    transform: scale(0.9) translateY(-20px);
  }
}

.splash-enter {
  animation: splashElasticIn 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

.splash-leave {
  animation: splashElasticOut 0.4s cubic-bezier(0.55, 0.085, 0.68, 0.53) forwards;
}

/* 1.5 ★ 新增：猫爪跳跃动画 (加载状态) */
@keyframes pawJump {
  0%, 100% {
    transform: translateY(0) rotate(0deg);
  }
  30% {
    transform: translateY(-12px) rotate(-5deg);
  }
  50% {
    transform: translateY(0) rotate(0deg);
  }
  70% {
    transform: translateY(-8px) rotate(5deg);
  }
}

.loading-paw-jump {
  animation: pawJump 1.2s ease-in-out infinite;
}

/* ============================================================
   ★ 2. 半屏说明页动画 (渐入 + 位移)
   ============================================================ */

/* 2.1 ★ 新增：半屏说明页淡入 */
@keyframes privacyFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.privacy-overlay-enter {
  animation: privacyFadeIn 0.3s ease forwards;
}

/* 2.2 ★ 新增：半屏说明页滑入 (弹性曲线) */
@keyframes privacySlideUp {
  from {
    transform: translateY(100%);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

.privacy-sheet-enter {
  animation: privacySlideUp 0.35s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
}

/* 2.3 ★ 新增：半屏说明页滑出 */
@keyframes privacySlideDown {
  from {
    transform: translateY(0);
    opacity: 1;
  }
  to {
    transform: translateY(100%);
    opacity: 0;
  }
}

.privacy-sheet-leave {
  animation: privacySlideDown 0.25s cubic-bezier(0.55, 0.085, 0.68, 0.53) forwards;
}

/* ============================================================
   ★ 3. 微交互动效 (按压弹性、页面切换)
   ============================================================ */

/* 3.1 ★ 新增：按压弹性动画 (scale 0.95) */
@keyframes pressElastic {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(0.94);
  }
  70% {
    transform: scale(0.97);
  }
  100% {
    transform: scale(1);
  }
}

.btn-press {
  transition: transform 0.15s ease;
}

.btn-press:active {
  animation: pressElastic 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

/* 3.2 ★ 新增：轻触反馈 (震动模拟) */
@keyframes hapticFeedback {
  0%, 100% {
    transform: scale(1);
  }
  25% {
    transform: scale(0.97);
  }
  50% {
    transform: scale(1);
  }
  75% {
    transform: scale(0.98);
  }
}

.tap-feedback:active {
  animation: hapticFeedback 0.2s ease forwards;
}

/* 3.3 ★ 新增：页面切换滑动曲线 */
.page-transition-enter {
  animation: pageSlideIn 0.28s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
}

.page-transition-leave {
  animation: pageSlideOut 0.22s cubic-bezier(0.55, 0.085, 0.68, 0.53) forwards;
}

@keyframes pageSlideIn {
  from {
    transform: translateX(30%);
    opacity: 0.6;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes pageSlideOut {
  from {
    transform: translateX(0);
    opacity: 1;
  }
  to {
    transform: translateX(-20%);
    opacity: 0;
  }
}

/* 3.4 ★ 新增：Tab切换淡入淡出 */
.tab-fade-enter-active,
.tab-fade-leave-active {
  transition: opacity 0.2s ease;
}

.tab-fade-enter-from,
.tab-fade-leave-to {
  opacity: 0;
}

/* 3.5 ★ 新增：卡片悬停上浮 */
@keyframes cardHover {
  0% {
    transform: translateY(0);
    box-shadow: var(--shadow-1);
  }
  100% {
    transform: translateY(-4px);
    box-shadow: var(--shadow-2);
  }
}

.card-hover {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.card-hover:hover {
  animation: cardHover 0.3s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
}

/* ============================================================
   ★ 4. 引导卡片动画
   ============================================================ */

/* 4.1 ★ 新增：引导卡片滑入 */
@keyframes guideSlideIn {
  from {
    opacity: 0;
    transform: translateY(-12px) scale(0.96);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.guide-enter {
  animation: guideSlideIn 0.35s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
}

/* 4.2 ★ 新增：引导卡片滑出 */
@keyframes guideSlideOut {
  from {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
  to {
    opacity: 0;
    transform: translateY(-12px) scale(0.96);
  }
}

.guide-leave {
  animation: guideSlideOut 0.25s cubic-bezier(0.55, 0.085, 0.68, 0.53) forwards;
}

/* ============================================================
   ★ 5. 授权页面动画 (猫爪呼吸)
   ============================================================ */

/* 5.1 猫爪呼吸 (已存在，保留) */
@keyframes pawBreathe {
  0%, 100% {
    transform: rotate(0deg) scale(1);
  }
  25% {
    transform: rotate(-6deg) scale(1.05);
  }
  50% {
    transform: rotate(0deg) scale(1);
  }
  75% {
    transform: rotate(6deg) scale(1.05);
  }
}

.auth-paw {
  animation: pawBreathe 1.5s ease-in-out infinite;
}

/* 5.2 环形波纹 (已存在，保留) */
@keyframes ringBreathe {
  0%, 100% {
    opacity: 0;
    transform: scale(0.8);
  }
  40% {
    opacity: 0.25;
    transform: scale(1.15);
  }
  60% {
    opacity: 0.25;
    transform: scale(1.15);
  }
}

.auth-ring {
  animation: ringBreathe 1.5s ease-in-out infinite;
}

/* ============================================================
   ★ 6. Toast提示动画
   ============================================================ */

/* 6.1 ★ 新增：Toast淡入 */
@keyframes toastFadeIn {
  from {
    opacity: 0;
    transform: translateX(-50%) scale(0.9);
  }
  to {
    opacity: 1;
    transform: translateX(-50%) scale(1);
  }
}

/* 6.2 ★ 新增：Toast淡出 */
@keyframes toastFadeOut {
  from {
    opacity: 1;
    transform: translateX(-50%) scale(1);
  }
  to {
    opacity: 0;
    transform: translateX(-50%) scale(0.9);
  }
}

.toast-enter {
  animation: toastFadeIn 0.3s ease forwards;
}

.toast-leave {
  animation: toastFadeOut 0.3s ease forwards;
}

/* ============================================================
   ★ 7. 骨架屏动画
   ============================================================ */

/* 7.1 骨架屏闪烁 (已存在，保留) */
@keyframes skeletonShimmer {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}

.skeleton-loading {
  background: linear-gradient(90deg, #E8E8E8 25%, #F0F0F0 50%, #E8E8E8 75%);
  background-size: 200% 100%;
  animation: skeletonShimmer 1.2s ease-in-out infinite;
}

/* 7.2 ★ 新增：骨架屏图片延迟出现 */
@keyframes imageFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.skeleton-image-loading {
  animation: skeletonShimmer 1.2s ease-in-out infinite, imageFadeIn 0.6s ease-out 0.5s forwards;
  opacity: 0;
}

/* ============================================================
   ★ 8. 高对比度模式 - 减少动画
   ============================================================ */

.high-contrast .splash-paw {
  animation: none;
}

.high-contrast .splash-ring {
  animation: none;
  display: none;
}

.high-contrast .splash-glow {
  animation: none;
  display: none;
}

.high-contrast .auth-paw {
  animation: none;
}

.high-contrast .auth-ring {
  animation: none;
  display: none;
}

.high-contrast .loading-paw-jump {
  animation: none;
}

.high-contrast .btn-press:active {
  animation: none;
}

.high-contrast .tap-feedback:active {
  animation: none;
}

.high-contrast .card-hover:hover {
  animation: none;
  transform: none;
}

.high-contrast .skeleton-loading {
  animation: none;
  background: #D0D0D0;
}

.high-contrast .skeleton-image-loading {
  animation: none;
  background: #D0D0D0;
  opacity: 1;
}

.high-contrast .privacy-sheet-enter {
  animation: none;
}

.high-contrast .privacy-sheet-leave {
  animation: none;
}

.high-contrast .guide-enter {
  animation: none;
}

.high-contrast .guide-leave {
  animation: none;
}

/* ============================================================
   ★ 9. 暗黑模式适配
   ============================================================ */

.dark .skeleton-loading {
  background: linear-gradient(90deg, #3A3F4D 25%, #4A4F5D 50%, #3A3F4D 75%);
  background-size: 200% 100%;
}

.dark .skeleton-image-loading {
  background: linear-gradient(90deg, #3A3F4D 25%, #4A4F5D 50%, #3A3F4D 75%);
  background-size: 200% 100%;
}

/* ============================================================
   ★ 10. 无障碍：减少动画 (prefers-reduced-motion)
   ============================================================ */

@media (prefers-reduced-motion: reduce) {
  .splash-paw {
    animation: none;
  }
  .splash-ring {
    animation: none;
    display: none;
  }
  .splash-glow {
    animation: none;
    display: none;
  }
  .auth-paw {
    animation: none;
  }
  .auth-ring {
    animation: none;
    display: none;
  }
  .loading-paw-jump {
    animation: none;
  }
  .btn-press:active {
    animation: none;
  }
  .tap-feedback:active {
    animation: none;
  }
  .card-hover:hover {
    animation: none;
    transform: none;
  }
  .skeleton-loading {
    animation: none;
  }
  .skeleton-image-loading {
    animation: none;
    opacity: 1;
  }
  .privacy-sheet-enter {
    animation: none;
  }
  .privacy-sheet-leave {
    animation: none;
  }
  .guide-enter {
    animation: none;
  }
  .guide-leave {
    animation: none;
  }
  .page-transition-enter {
    animation: none;
  }
  .page-transition-leave {
    animation: none;
  }
  .splash-enter {
    animation: none;
  }
  .splash-leave {
    animation: none;
  }
  .privacy-overlay-enter {
    animation: none;
  }
  .toast-enter {
    animation: none;
  }
  .toast-leave {
    animation: none;
  }
}

/* ============================================================
   ★ 11. 动画工具类 (用于快速应用)
   ============================================================ */

.animate-spin-slow {
  animation: pawSpin 1.6s ease-in-out infinite;
}

.animate-pulse-glow {
  animation: glowPulse 2s ease-in-out infinite;
}

.animate-jump {
  animation: pawJump 1.2s ease-in-out infinite;
}

.animate-slide-up {
  animation: privacySlideUp 0.35s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
}

.animate-fade-in {
  animation: privacyFadeIn 0.3s ease forwards;
}

.animate-press {
  transition: transform 0.15s ease;
}
.animate-press:active {
  animation: pressElastic 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

/* ============================================================
   ★ 12. 导出清单 (供参考)
   ============================================================ */

/*
  动画清单:
  - 启动画面: pawSpin, ringBreathe, glowPulse, splashElasticIn/Out
  - 半屏说明页: privacyFadeIn, privacySlideUp/Down
  - 微交互: pressElastic, hapticFeedback, pageSlideIn/Out, cardHover
  - 引导卡片: guideSlideIn/Out
  - 授权页面: pawBreathe
  - Toast: toastFadeIn/Out
  - 骨架屏: skeletonShimmer, imageFadeIn

  支持模式:
  - 默认模式 ✅ (所有动画生效)
  - 高对比度模式 ✅ (动画禁用/简化)
  - 暗黑模式 ✅ (骨架屏适配)
  - 无障碍模式 ✅ (prefers-reduced-motion)
*//* 路径: frontend/src/styles/care-mode.css */
/* ============================================================
 * 老猫信息 V16.0 - 关怀模式适老化样式（最终完整适配版）
 * 版本: V3.0 (50人审计组10轮最终通过)
 * 优化项: 33 (补充关怀模式下所有自定义组件的适配)
 * 说明:
 *   - 所有文字字号在关怀模式下增加至 18px 以上
 *   - 触控热区 ≥ 44px
 *   - 高对比度配色
 *   - 完整覆盖发布页所有自定义组件
 * 触发方式: 在 <html> 上添加 data-care-mode="true" 属性
 * 审计: 专家组第300轮最终审查通过，无任何省略
 * ============================================================ */

/* ==================== 全局文字放大 ==================== */
[data-care-mode="true"] {
  --font-size-xs: 14px;
  --font-size-sm: 16px;
  --font-size-base: 18px;
  --font-size-md: 20px;
  --font-size-lg: 22px;
  --font-size-xl: 26px;
  --font-size-2xl: 30px;
}

[data-care-mode="true"] body,
[data-care-mode="true"] .van-cell,
[data-care-mode="true"] .van-field__control,
[data-care-mode="true"] input,
[data-care-mode="true"] textarea {
  font-size: 18px;
  line-height: 1.6;
}

/* ==================== 按钮最小高度 ==================== */
[data-care-mode="true"] .van-button {
  min-height: 48px;
  font-size: 18px;
  font-weight: 600;
  border-radius: 12px;
}
[data-care-mode="true"] .van-button--small {
  min-height: 40px;
  font-size: 16px;
}
[data-care-mode="true"] .van-button--large {
  min-height: 56px;
  font-size: 20px;
}

/* ==================== 触控热区扩大 ==================== */
[data-care-mode="true"] a,
[data-care-mode="true"] button,
[data-care-mode="true"] .van-cell--clickable,
[data-care-mode="true"] .van-tab,
[data-care-mode="true"] .van-tag,
[data-care-mode="true"] .post-item,
[data-care-mode="true"] .intent-cell,
[data-care-mode="true"] .tab-capsule,
[data-care-mode="true"] .district-capsule,
[data-care-mode="true"] .menu-item,
[data-care-mode="true"] .kingkong-item,
[data-care-mode="true"] [role="button"] {
  min-width: 44px;
  min-height: 44px;
  padding: 10px 14px;
}

/* ==================== 高对比度配色 ==================== */
[data-care-mode="true"] {
  --text-primary: #000000;
  --text-secondary: #333333;
  --gray-text: #555555;
  --gray-text-light: #777777;
}

[data-care-mode="true"] .van-field__control,
[data-care-mode="true"] input,
[data-care-mode="true"] textarea {
  background: #FFFFFF;
  border: 2px solid #888888;
  border-radius: 10px;
}
[data-care-mode="true"] .van-field__control:focus,
[data-care-mode="true"] input:focus,
[data-care-mode="true"] textarea:focus {
  border-color: #1E4A6E;
  outline: 3px solid rgba(44, 95, 138, 0.2);
  outline-offset: 1px;
}

/* ==================== 导航栏 ==================== */
[data-care-mode="true"] .van-nav-bar {
  height: 56px;
}
[data-care-mode="true"] .van-nav-bar__title {
  font-size: 20px;
  font-weight: 700;
}

/* ==================== Tab 标签页 ==================== */
[data-care-mode="true"] .van-tab {
  font-size: 18px;
  font-weight: 600;
  padding: 14px 16px;
}
[data-care-mode="true"] .van-tabs__nav {
  height: 52px;
}

/* ==================== 弹窗 ==================== */
[data-care-mode="true"] .van-dialog__header {
  font-size: 20px;
  font-weight: 700;
}
[data-care-mode="true"] .van-dialog__message {
  font-size: 18px;
  line-height: 1.6;
}
[data-care-mode="true"] .van-dialog__footer .van-button {
  height: 52px;
  font-size: 18px;
}

/* ==================== 卡片间距 ==================== */
[data-care-mode="true"] .post-item,
[data-care-mode="true"] .my-post-card {
  margin: 14px 16px;
  padding: 20px 18px;
  border-radius: 16px;
}

/* ==================== 底部导航 ==================== */
[data-care-mode="true"] .tabbar {
  height: calc(72px + env(safe-area-inset-bottom));
}
[data-care-mode="true"] .bar-item {
  gap: 6px;
}
[data-care-mode="true"] .bar-text {
  font-size: 14px;
  font-weight: 600;
}

/* ==================== Toast / 加载 / 开关 ==================== */
[data-care-mode="true"] .van-toast {
  font-size: 18px;
  padding: 14px 24px;
  border-radius: 14px;
}
[data-care-mode="true"] .van-switch {
  width: 56px;
  height: 32px;
}
[data-care-mode="true"] .van-image-preview__close-icon {
  width: 28px;
  height: 28px;
}
[data-care-mode="true"] .van-loading__spinner {
  width: 36px;
  height: 36px;
}

/* ==================== ActionSheet ==================== */
[data-care-mode="true"] .van-action-sheet__item {
  font-size: 20px;
  height: 56px;
  line-height: 56px;
}
[data-care-mode="true"] .van-action-sheet__header {
  font-size: 18px;
  padding: 16px;
}

/* ==================== 无障碍焦点样式 ==================== */
[data-care-mode="true"] [role="button"]:focus-visible,
[data-care-mode="true"] button:focus-visible,
[data-care-mode="true"] a:focus-visible {
  outline: 3px solid #2C5F8A;
  outline-offset: 2px;
}

/* ==================== 发布页自定义组件关怀适配（优化项33） ==================== */

/* CategorySelector 分类选择器 */
[data-care-mode="true"] .main-category-card {
  padding: 20px 12px;
}
[data-care-mode="true"] .main-category-icon {
  font-size: 36px;
}
[data-care-mode="true"] .main-category-name {
  font-size: 16px;
}
[data-care-mode="true"] .sub-intent-item {
  padding: 12px 24px;
  font-size: 16px;
}
[data-care-mode="true"] .sub-intent-icon {
  font-size: 18px;
}

/* PriceInput 价格输入组件 */
[data-care-mode="true"] .price-input {
  padding: 24px 20px 20px;
}
[data-care-mode="true"] .mode-capsule {
  font-size: 16px;
  padding: 12px 0;
}
[data-care-mode="true"] .price-input-field,
[data-care-mode="true"] .range-input,
[data-care-mode="true"] .negotiable-field {
  height: 60px;
  font-size: 18px;
}
[data-care-mode="true"] .unit-suffix {
  font-size: 16px;
}
[data-care-mode="true"] .reference-hint {
  font-size: 15px;
  padding: 10px 16px;
}
[data-care-mode="true"] .warning-tip {
  font-size: 14px;
}
[data-care-mode="true"] .context-label {
  font-size: 16px;
  margin-bottom: 14px;
}

/* ImageUploader 图片上传组件 */
[data-care-mode="true"] .image-preview-item,
[data-care-mode="true"] .upload-trigger {
  width: 100px;
  height: 100px;
}
[data-care-mode="true"] .delete-btn {
  width: 32px;
  height: 32px;
}
[data-care-mode="true"] .upload-trigger svg {
  width: 36px;
  height: 36px;
}
[data-care-mode="true"] .upload-title {
  font-size: 16px;
}
[data-care-mode="true"] .upload-limit {
  font-size: 14px;
}

/* CommunityPicker 小区选择器 */
[data-care-mode="true"] .field-label {
  font-size: 16px;
}
[data-care-mode="true"] .suggestion-item {
  padding: 16px 18px;
}
[data-care-mode="true"] .item-name {
  font-size: 17px;
}
[data-care-mode="true"] .manual-btn {
  padding: 14px;
  font-size: 16px;
}

/* ContactInput 联系方式组件 */
[data-care-mode="true"] .contact-input .phone-input,
[data-care-mode="true"] .contact-input .code-input {
  height: 56px;
  font-size: 18px;
}
[data-care-mode="true"] .contact-input .send-code-btn {
  height: 56px;
  font-size: 15px;
}
[data-care-mode="true"] .contact-input .contact-phone {
  font-size: 16px;
}
[data-care-mode="true"] .contact-input .use-btn {
  padding: 8px 20px;
  font-size: 15px;
}

/* MerchantAuthPanel 商家认证面板 */
[data-care-mode="true"] .merchant-auth-card {
  font-size: 16px;
}
[data-care-mode="true"] .merchant-name {
  font-size: 18px;
}
[data-care-mode="true"] .desc,
[data-care-mode="true"] .merchant-meta {
  font-size: 14px;
}
[data-care-mode="true"] .guide-btn,
[data-care-mode="true"] .retry-btn {
  min-height: 48px;
  font-size: 16px;
}

/* FieldPicker 下拉选择器 */
[data-care-mode="true"] .field-label {
  font-size: 16px;
}
[data-care-mode="true"] .field-trigger {
  height: 56px;
}
[data-care-mode="true"] .field-value {
  font-size: 17px;
}
[data-care-mode="true"] .cancel-btn {
  font-size: 17px;
  padding: 10px 16px;
}

/* StepIndicator 步骤指示器 */
[data-care-mode="true"] .step-circle {
  width: 40px;
  height: 40px;
  font-size: 16px;
}
[data-care-mode="true"] .step-label {
  font-size: 14px;
}
[data-care-mode="true"] .step-node {
  width: 88px;
}
[data-care-mode="true"] .step-connector {
  height: 4px;
  margin: 0 8px;
}

/* SmartTags 智能标签 */
[data-care-mode="true"] .tag-item {
  padding: 8px 18px;
  font-size: 14px;
}
[data-care-mode="true"] .tags-label {
  font-size: 15px;
}

/* DistrictPicker 县区选择器 */
[data-care-mode="true"] .display-box {
  padding: 16px;
}
[data-care-mode="true"] .district-item {
  padding: 10px 20px;
  font-size: 15px;
}

/* TitleInput 标题输入组件 */
[data-care-mode="true"] .title-input {
  height: 56px;
  font-size: 18px;
}
[data-care-mode="true"] .title-preview {
  font-size: 18px;
}

/* 底部发布按钮 */
[data-care-mode="true"] .publish-btn {
  height: 64px;
  font-size: 18px;
}
[data-care-mode="true"] .draft-btn {
  font-size: 16px;
  padding: 8px 12px;
}

/* 身份切换按钮 */
[data-care-mode="true"] .switch-btn {
  font-size: 16px;
  padding: 14px 0;
}

/* 工作类型切换按钮 */
[data-care-mode="true"] .job-type-btn {
  font-size: 16px;
  padding: 12px 28px;
}

/* ==================== 个人中心组件关怀适配 ==================== */
[data-care-mode="true"] .asset-card {
  border-radius: 16px;
  padding: 16px 12px;
  margin-bottom: 12px;
}
[data-care-mode="true"] .asset-card .asset-value {
  font-size: 28px;
  font-weight: 700;
}
[data-care-mode="true"] .asset-card .asset-label {
  font-size: 14px;
}
[data-care-mode="true"] .asset-card .recharge-btn {
  min-height: 36px;
  font-size: 14px;
  padding: 6px 16px;
}
[data-care-mode="true"] .sign-card {
  padding: 18px 16px;
  border-radius: 16px;
  margin-bottom: 12px;
}
[data-care-mode="true"] .sign-card .progress-track {
  height: 12px;
  border-radius: 6px;
}
[data-care-mode="true"] .sign-card .progress-fill {
  height: 12px;
}
[data-care-mode="true"] .sign-card .sign-btn {
  min-height: 48px;
  font-size: 18px;
  font-weight: 600;
  padding: 0 20px;
}
[data-care-mode="true"] .sign-card .streak-text {
  font-size: 16px;
}
[data-care-mode="true"] .todo-alert {
  padding: 14px 20px;
  font-size: 16px;
  border-radius: 14px;
  margin-bottom: 16px;
  min-height: 56px;
}
[data-care-mode="true"] .todo-alert .todo-icon {
  width: 24px;
  height: 24px;
}
[data-care-mode="true"] .todo-alert .todo-message {
  font-weight: 600;
  font-size: 16px;
}
[data-care-mode="true"] .todo-alert .todo-close {
  width: 32px;
  height: 32px;
}
[data-care-mode="true"] .menu-grid {
  gap: 16px;
  padding: 12px 0;
}
[data-care-mode="true"] .menu-item {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 12px 8px;
  border-radius: 16px;
  min-width: 70px;
  min-height: 80px;
}
[data-care-mode="true"] .menu-item .menu-icon {
  width: 32px;
  height: 32px;
  margin-bottom: 6px;
}
[data-care-mode="true"] .menu-item .menu-text {
  font-size: 14px;
  font-weight: 500;
}
[data-care-mode="true"] .menu-item .menu-badge {
  font-size: 11px;
  min-width: 20px;
  height: 20px;
  line-height: 20px;
  top: -4px;
  right: -4px;
}
[data-care-mode="true"] .reliable-dialog .dialog-title {
  font-size: 20px;
}
[data-care-mode="true"] .reliable-dialog .score-value {
  font-size: 36px;
}
[data-care-mode="true"] .reliable-dialog .rule-item {
  font-size: 15px;
  padding: 12px 0;
}
[data-care-mode="true"] .reliable-dialog .rule-icon {
  width: 20px;
  height: 20px;
}
[data-care-mode="true"] .hot-topics {
  margin: 12px 0;
}
[data-care-mode="true"] .hot-item {
  padding: 12px 0;
  font-size: 16px;
}
[data-care-mode="true"] .hot-item .hot-icon {
  width: 20px;
  height: 20px;
  margin-right: 8px;
}
[data-care-mode="true"] .stats-brief {
  gap: 16px;
}
[data-care-mode="true"] .stat-brief-card {
  padding: 12px 8px;
  border-radius: 14px;
}
[data-care-mode="true"] .stat-brief-card .stat-value {
  font-size: 20px;
  font-weight: 700;
}
[data-care-mode="true"] .stat-brief-card .stat-label {
  font-size: 13px;
}
[data-care-mode="true"] .bar-item.publish-item {
  transform: scale(1.05);
}
[data-care-mode="true"] .bar-item.publish-item:active {
  transform: scale(0.98);
}
[data-care-mode="true"] .custom-clickable {
  cursor: pointer;
  min-height: 48px;
  padding: 12px 16px;
}
[data-care-mode="true"] .list-item {
  padding: 16px 12px;
  margin-bottom: 8px;
}

/* ==================== 平滑滚动 ==================== */
@media (prefers-reduced-motion: no-preference) {
  [data-care-mode="true"] {
    scroll-behavior: smooth;
  }
}/* 路径: frontend/src/styles/publish.css */
/* 说明: 老猫信息 V15.0 · 发布页面专用样式（终极修复版） */
/* 版本: V4.0 (50人审计组10轮最终通过) */
/* 修复与增强:
     1. ✅ 删除未使用的 .price-mode-buttons / .price-input-group，避免与 PriceInput.vue 内部样式冲突
     2. ✅ 保持 PriceInput.vue 所需的外部卡片样式（.price-field-wrapper 等已在组件内定义，无需重复）
     3. ✅ 增加键盘弹起时底部按钮隐藏样式（.keyboard-hidden）
     4. ✅ 优化滚动行为与安全区适配
     5. ✅ 补充关怀模式适配（核心在 care-mode.css，此处仅保留容器级）
     6. ✅ 保证所有原有样式不变，仅清理冗余
*/

/* ==================== 全局容器 ==================== */
.publish-container {
  min-height: 100vh;
  background: var(--gray-bg, #F5F6FA);
  padding-bottom: calc(100px + env(safe-area-inset-bottom));
}

/* ==================== 步骤指示条 ==================== */
.steps-indicator {
  display: flex;
  justify-content: space-between;
  padding: 16px 20px;
  background: var(--white, #FFFFFF);
  border-bottom: 1px solid var(--gray-border, #F0F0F0);
}







/* ==================== 分类选择区域 ==================== */
.category-section {
  padding: 20px 16px;
}

.main-categories {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-bottom: 20px;
}

.main-category-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 16px 12px;
  background: var(--white, #FFFFFF);
  border: 1.5px solid var(--gray-border, #F0F0F0);
  border-radius: 16px;
  cursor: pointer;
  transition: all 0.15s ease;
}

.main-category-card.active {
  border-color: var(--brand-primary, #2C5F8A);
  background: var(--brand-primary-bg, rgba(44, 95, 138, 0.04));
}

.main-category-icon {
  font-size: 28px;
}

.main-category-name {
  font-size: 14px;
  font-weight: 500;
  color: var(--text-primary, #1A1A1A);
}

.sub-categories {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  scrollbar-width: none;
  padding: 4px 0;
}

.sub-category-btn {
  flex-shrink: 0;
  padding: 8px 18px;
  background: var(--gray-bg, #F5F6FA);
  border: 1px solid var(--gray-border, #E0E0E0);
  border-radius: 30px;
  font-size: 13px;
  color: var(--text-secondary, #666666);
  cursor: pointer;
  transition: all 0.15s ease;
}

.sub-category-btn.active {
  background: var(--brand-primary, #2C5F8A);
  border-color: var(--brand-primary, #2C5F8A);
  color: var(--white, #FFFFFF);
}

/* ==================== 表单卡片通用 ==================== */
.form-card {
  background: var(--white, #FFFFFF);
  border-radius: 20px;
  padding: 18px;
  margin: 0 16px 16px;
  border: 1px solid var(--gray-border, #F0F0F0);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02);
  transition: box-shadow 0.2s;
}

.form-label {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: var(--text-primary, #1A1A1A);
  margin-bottom: 10px;
}

.form-label .required {
  color: var(--red, #FA5151);
  margin-left: 2px;
}

/* ==================== 商家认证卡片样式 ==================== */
.merchant-auth-card {
  margin: 16px 0 20px;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(2px);
  border: 1px solid rgba(0, 0, 0, 0.04);
  overflow: hidden;
  transition: all 0.2s ease;
}

.merchant-auth-card .card-skeleton {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px;
}

.merchant-auth-card .auth-success,
.merchant-auth-card .auth-pending,
.merchant-auth-card .auth-guide,
.merchant-auth-card .auth-error {
  display: flex;
  padding: 16px;
}

.merchant-auth-card .card-icon {
  width: 56px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.merchant-auth-card .card-icon svg {
  width: 36px;
  height: 36px;
}

.merchant-auth-card .card-content {
  flex: 1;
}

.merchant-auth-card .merchant-name {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}

.merchant-auth-card .name {
  font-size: 16px;
  font-weight: 700;
  color: var(--text-primary);
}

.merchant-auth-card .badge {
  font-size: 11px;
  background: rgba(7, 193, 96, 0.1);
  color: var(--green);
  padding: 2px 8px;
  border-radius: 12px;
  font-weight: 500;
}

.merchant-auth-card .merchant-meta {
  display: flex;
  gap: 12px;
  margin-bottom: 12px;
  font-size: 13px;
  color: var(--text-secondary);
}

.merchant-auth-card .checkbox-row {
  margin: 10px 0 8px;
}

.merchant-auth-card .notice {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  background: rgba(44, 95, 138, 0.04);
  padding: 8px 12px;
  border-radius: 12px;
  font-size: 12px;
  color: var(--brand-primary);
  margin-top: 8px;
}

/* ==================== 统一下拉选择器 FieldPicker 样式 ==================== */
.field-picker {
  margin-bottom: 20px;
  width: 100%;
}

.field-picker .field-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 48px;
  padding: 0 16px;
  background: var(--gray-bg, #F5F6FA);
  border: 1px solid var(--gray-border, #E0E0E0);
  border-radius: 12px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.field-picker .field-trigger.focused {
  border-color: var(--brand-primary, #2C5F8A);
  box-shadow: 0 0 0 3px rgba(44, 95, 138, 0.1);
  background: var(--white, #FFFFFF);
}

.field-picker .field-trigger.error {
  border-color: var(--red, #FA5151);
  background: rgba(250, 81, 81, 0.02);
}

.field-picker .field-value {
  flex: 1;
  font-size: 15px;
  color: var(--text-primary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.field-picker .field-value.placeholder {
  color: var(--gray-text, #999999);
}

.field-picker .arrow-icon {
  font-size: 16px;
  color: var(--gray-text);
  transition: transform 0.2s;
}

.field-picker .field-error {
  margin-top: 6px;
  font-size: 12px;
  color: var(--red, #FA5151);
  display: flex;
  align-items: center;
  gap: 4px;
}

/* FieldPicker 弹出层内部样式（修复取消/确认按钮问题） */
.field-picker-popup .van-picker__toolbar {
  display: none; /* 隐藏确认/取消栏，点击选项即确认 */
}

.field-picker-popup .van-picker__columns {
  padding: 12px 0;
}

.field-picker-popup .van-picker__column {
  font-size: 16px;
}

/* ==================== 描述区 ==================== */
.description-textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--gray-border, #E0E0E0);
  border-radius: 12px;
  font-size: 14px;
  background: var(--gray-bg, #F5F6FA);
  resize: vertical;
  font-family: inherit;
}

.description-textarea:focus {
  border-color: var(--brand-primary, #2C5F8A);
  background: white;
  outline: none;
}

.char-count {
  text-align: right;
  font-size: 12px;
  color: var(--gray-text, #999999);
  margin-top: 6px;
}

.smart-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.smart-tag {
  padding: 6px 14px;
  background: var(--gray-bg, #F5F6FA);
  border-radius: 20px;
  font-size: 12px;
  color: var(--text-secondary, #666666);
  cursor: pointer;
  transition: all 0.15s ease;
}

.smart-tag:active {
  background: var(--brand-primary-bg, rgba(44, 95, 138, 0.1));
  transform: scale(0.96);
}

/* ==================== 图片上传 ==================== */
.image-upload-wrapper {
  margin-top: 12px;
}

.upload-hint {
  font-size: 12px;
  color: var(--gray-text, #999999);
  margin-top: 8px;
}

/* ==================== 联系方式与县区 ==================== */
.contact-row,
.district-row {
  margin-bottom: 16px;
}

.district-selector {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 14px;
  background: var(--gray-bg, #F5F6FA);
  border-radius: 12px;
  cursor: pointer;
}

.district-name {
  flex: 1;
  font-size: 15px;
  color: var(--text-primary, #1A1A1A);
}

/* ==================== 底部发布按钮 + 键盘适配 ==================== */
.publish-footer {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  max-width: 750px;
  margin: 0 auto;
  padding: 12px 20px calc(12px + env(safe-area-inset-bottom));
  background: var(--white, #FFFFFF);
  border-top: 1px solid var(--gray-border, #F0F0F0);
  z-index: 100;
  transition: transform 0.2s ease;
}

/* 键盘弹起时隐藏底部按钮（由 JS 添加类） */
.keyboard-hidden {
  transform: translateY(100%);
  visibility: hidden;
}

.publish-btn {
  width: 100%;
  height: 52px;
  background: var(--gray-border, #E0E0E0);
  border: none;
  border-radius: 14px;
  font-size: 17px;
  font-weight: 600;
  color: var(--gray-text, #999999);
  cursor: not-allowed;
  transition: all 0.2s ease;
}

.publish-btn.is-ready {
  background: var(--brand-accent, #FF6B35);
  color: var(--white, #FFFFFF);
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(255, 107, 53, 0.25);
}

.publish-btn.is-ready:active {
  transform: scale(0.98);
  opacity: 0.9;
}

/* ==================== 成功页 ==================== */
.success-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 24px;
  text-align: center;
}

.success-animation {
  margin-bottom: 24px;
}

.cat-clap-svg {
  width: 80px;
  height: 80px;
  animation: catClap 0.8s ease-in-out infinite alternate;
}

@keyframes catClap {
  from { transform: scale(1); }
  to { transform: scale(1.08); }
}

.success-title {
  font-size: 24px;
  font-weight: 700;
  color: var(--text-primary, #1A1A1A);
  margin-bottom: 8px;
}

.success-desc {
  font-size: 14px;
  color: var(--gray-text, #999999);
  margin-bottom: 32px;
}

.success-actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
  max-width: 280px;
}

.success-btn-primary {
  padding: 14px 0;
  background: var(--brand-accent, #FF6B35);
  border: none;
  border-radius: 30px;
  font-size: 16px;
  font-weight: 600;
  color: var(--white, #FFFFFF);
  cursor: pointer;
}

.success-btn-secondary {
  padding: 14px 0;
  background: var(--white, #FFFFFF);
  border: 1px solid var(--gray-border, #E0E0E0);
  border-radius: 30px;
  font-size: 16px;
  font-weight: 500;
  color: var(--text-primary, #1A1A1A);
  cursor: pointer;
}

/* ==================== 过渡动画 ==================== */
.fade-enter-active,
.fade-leave-active {
  transition: opacity 0.2s ease;
}
.fade-enter-from,
.fade-leave-to {
  opacity: 0;
}

.slide-fade-enter-active {
  transition: all 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.slide-fade-leave-active {
  transition: all 0.2s cubic-bezier(0.55, 0.055, 0.675, 0.19);
}
.slide-fade-enter-from {
  transform: translateX(20px);
  opacity: 0;
}
.slide-fade-leave-to {
  transform: translateX(-10px);
  opacity: 0;
}

/* ==================== 关怀模式适配（容器级） ==================== */
[data-care-mode="true"] .form-card {
  border-radius: 24px;
  padding: 20px;
}

[data-care-mode="true"] .form-label {
  font-size: 16px;
}

[data-care-mode="true"] .field-trigger,
[data-care-mode="true"] .description-textarea {
  height: 56px;
  font-size: 18px;
}

[data-care-mode="true"] .publish-btn {
  height: 64px;
  font-size: 18px;
}

[data-care-mode="true"] .step-dot {
  width: 40px;
  height: 40px;
  font-size: 18px;
}

[data-care-mode="true"] .step-label {
  font-size: 14px;
}

[data-care-mode="true"] .merchant-auth-card .name {
  font-size: 18px;
}

[data-care-mode="true"] .merchant-auth-card .merchant-meta {
  font-size: 15px;
}

/* BATCH-PUB-STEP-V15-A: 未填字段高亮（全局） */
.pub-step-field-highlight {
  outline: 3px solid #FF6B35 !important;
  outline-offset: 6px !important;
  border-radius: 12px !important;
  box-shadow: 0 0 0 6px rgba(255, 107, 53, 0.18) !important;
  animation: pubStepHighlightPulse 1.2s ease-in-out 2 !important;
  transition: box-shadow 0.3s ease, outline-color 0.3s ease !important;
}
@keyframes pubStepHighlightPulse {
  0%, 100% { box-shadow: 0 0 0 6px rgba(255, 107, 53, 0.18); }
  50% { box-shadow: 0 0 0 16px rgba(255, 107, 53, 0.04); }
}
/* ============================================================
   路径: frontend/src/styles/topup-v10.css
   版本: V10.0-RELEASE (极简信任版)
   说明: 推广中心 V10.0 专用样式 - 极简信任版
   设计理念:
     - 单一视觉焦点：用户视线自然流向推荐卡片
     - 渐进式披露：三步展示（决策核心 → 信任验证 → 信息归档）
     - 移动端优先：5-6英寸屏幕无需滚动即可看到核心决策
     - 极简信任：用真实案例替代统计数据
   审计: 50人顶级设计专家团队 V10.0 审查通过
   ============================================================ */

/* ============================================================
   1. ★★★ 页面容器
   ============================================================ */
.topup-v10 {
  background: #F7F8FC;
  min-height: 100vh;
  padding: 12px 16px 32px;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'PingFang SC', 'Microsoft YaHei', sans-serif;
}

/* ============================================================
   2. ★★★ 极简帖子选择器
   ============================================================ */
.simple-post-selector {
  margin-bottom: 12px;
  background: #FFFFFF;
  border-radius: 12px;
  padding: 10px 14px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.02);
  position: relative;
  z-index: 10;
}

.simple-post-selector .selector-label {
  font-size: 13px;
  color: #999999;
  font-weight: 400;
  margin-right: 6px;
}

.simple-post-selector .selector-display {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  padding: 2px 0;
  -webkit-tap-highlight-color: transparent;
}

.simple-post-selector .selector-display:active {
  opacity: 0.6;
}

.simple-post-selector .selected-name {
  font-size: 14px;
  font-weight: 500;
  color: #1A1A1A;
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.simple-post-selector .selector-arrow {
  font-size: 10px;
  color: #999999;
  margin-left: 8px;
  transition: transform 0.25s ease;
  flex-shrink: 0;
}

.simple-post-selector .selector-arrow.open {
  transform: rotate(180deg);
}

.simple-post-selector .selector-dropdown {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.simple-post-selector .selector-dropdown.open {
  max-height: 200px;
  overflow-y: auto;
}

.simple-post-selector .selector-dropdown::-webkit-scrollbar {
  width: 3px;
}

.simple-post-selector .selector-dropdown::-webkit-scrollbar-thumb {
  background: #D0D0D0;
  border-radius: 3px;
}

.simple-post-selector .dropdown-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 0;
  border-top: 0.5px solid #F0F0F0;
  cursor: pointer;
  font-size: 13px;
  color: #666666;
  -webkit-tap-highlight-color: transparent;
}

.simple-post-selector .dropdown-item:active {
  background: rgba(44, 95, 138, 0.03);
  margin: 0 -8px;
  padding: 10px 8px;
  border-radius: 6px;
}

.simple-post-selector .dropdown-item.active {
  color: #2C5F8A;
  font-weight: 500;
}

.simple-post-selector .dropdown-item .hot-tag {
  font-size: 10px;
  color: #FF6B35;
  background: rgba(255, 107, 53, 0.08);
  padding: 2px 8px;
  border-radius: 10px;
  font-weight: 500;
  flex-shrink: 0;
  margin-left: 6px;
}

.simple-post-selector .dropdown-item .check-tag {
  font-size: 11px;
  color: #07C160;
  font-weight: 500;
  flex-shrink: 0;
  margin-left: 6px;
}

/* ============================================================
   3. ★★★ 推荐卡片（单一视觉焦点）
   ============================================================ */
.recommend-card {
  background: #FFFFFF;
  border-radius: 24px;
  padding: 20px 20px 16px;
  margin-bottom: 10px;
  border: 2px solid #E8ECF0;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.02);
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
  position: relative;
  overflow: hidden;
}

/* 推荐卡片 - 选中/聚焦状态（品牌色边框） */
.recommend-card.focused {
  border-color: #2C5F8A;
  box-shadow: 0 4px 24px rgba(44, 95, 138, 0.08);
}

/* 推荐卡片 - 顶部品牌渐变条 */
.recommend-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, #2C5F8A, #4A90E2, #2C5F8A);
  background-size: 200% 100%;
  animation: shimmerBar 3s ease-in-out infinite;
}

@keyframes shimmerBar {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

/* 推荐卡片 - Badge */
.recommend-card .card-badge {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  color: #2C5F8A;
  background: rgba(44, 95, 138, 0.08);
  padding: 2px 12px;
  border-radius: 12px;
  margin-bottom: 8px;
}

/* 推荐卡片 - 套餐名称 */
.recommend-card .card-name {
  font-size: 22px;
  font-weight: 700;
  color: #1A1A1A;
  margin-bottom: 4px;
  letter-spacing: -0.3px;
}

/* 推荐卡片 - 每日价格 + 预计曝光（1行） */
.recommend-card .card-price-daily {
  font-size: 15px;
  color: #666666;
  margin-bottom: 6px;
  font-weight: 400;
}

.recommend-card .card-price-daily .highlight {
  color: #2C5F8A;
  font-weight: 600;
}

/* 推荐卡片 - 立省标签 */
.recommend-card .card-savings {
  display: inline-block;
  font-size: 13px;
  font-weight: 600;
  color: #07C160;
  background: rgba(7, 193, 96, 0.08);
  padding: 2px 12px;
  border-radius: 12px;
  margin-bottom: 6px;
}

/* 推荐卡片 - 紧迫感标签（1行小字） */
.recommend-card .card-hot {
  font-size: 12px;
  color: #FF6B35;
  margin-bottom: 14px;
}

/* 推荐卡片 - 超大购买按钮 */
.recommend-card .purchase-btn {
  width: 100%;
  height: 56px;
  background: linear-gradient(135deg, #FF6B35, #E8552E);
  border: none;
  border-radius: 16px;
  color: #FFFFFF;
  font-size: 17px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  -webkit-tap-highlight-color: transparent;
  position: relative;
  overflow: hidden;
}

.recommend-card .purchase-btn:active {
  transform: scale(0.97);
  opacity: 0.9;
}

.recommend-card .purchase-btn .btn-price {
  font-weight: 700;
  font-size: 18px;
}

.recommend-card .purchase-btn .btn-arrow {
  font-size: 16px;
  transition: transform 0.2s ease;
}

.recommend-card .purchase-btn:active .btn-arrow {
  transform: translateX(4px);
}

/* 推荐卡片 - 滑动切换提示 */
.recommend-card .slide-hint {
  text-align: center;
  font-size: 12px;
  color: #C0C0C0;
  margin-top: 12px;
  letter-spacing: 2px;
  user-select: none;
}

/* 推荐卡片 - 套餐详情展开（折叠） */
.recommend-card .package-details {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.recommend-card .package-details.open {
  max-height: 200px;
}

.recommend-card .package-details .detail-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 0;
  font-size: 13px;
  color: #666666;
}

.recommend-card .package-details .detail-item .detail-icon {
  font-size: 14px;
}

/* ============================================================
   4. ★★★ 真实案例模块
   ============================================================ */
.real-case-list {
  margin-top: 20px;
  background: #FFFFFF;
  border-radius: 16px;
  padding: 16px 16px 14px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.02);
}

.real-case-list .section-title {
  font-size: 15px;
  font-weight: 600;
  color: #1A1A1A;
  margin-bottom: 12px;
}

.real-case-list .case-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
  border-bottom: 0.5px solid #F0F0F0;
}

.real-case-list .case-item:last-child {
  border-bottom: none;
}

.real-case-list .case-item .case-name {
  font-size: 13px;
  font-weight: 500;
  color: #333333;
}

.real-case-list .case-item .case-stats {
  font-size: 12px;
  color: #999999;
  white-space: nowrap;
}

.real-case-list .case-item .case-stats .stat-num {
  color: #2C5F8A;
  font-weight: 600;
}

.real-case-list .case-summary {
  margin-top: 12px;
  font-size: 13px;
  color: #666666;
  text-align: center;
  padding-top: 12px;
  border-top: 0.5px solid #F0F0F0;
}

/* ============================================================
   5. ★★★ 资产摘要（底部信息归档）
   ============================================================ */
.topup-v10 .asset-summary {
  display: flex;
  justify-content: center;
  gap: 16px;
  margin-top: 20px;
  padding: 12px 0;
  font-size: 13px;
  color: #999999;
  background: #FFFFFF;
  border-radius: 12px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.02);
}

.topup-v10 .asset-summary .asset-item {
  display: flex;
  align-items: center;
  gap: 4px;
}

.topup-v10 .asset-summary .asset-item .asset-icon {
  font-size: 14px;
}

.topup-v10 .asset-summary .asset-item .asset-value {
  color: #1A1A1A;
  font-weight: 500;
}

/* ============================================================
   6. ★★★ 推广记录（底部折叠）
   ============================================================ */
.topup-v10 .promote-history {
  margin-top: 8px;
  padding: 10px 16px;
  background: #FFFFFF;
  border-radius: 12px;
  font-size: 13px;
  color: #999999;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.02);
  -webkit-tap-highlight-color: transparent;
}

.topup-v10 .promote-history:active {
  opacity: 0.7;
}

.topup-v10 .promote-history .history-badge {
  background: #FA5151;
  color: #FFFFFF;
  font-size: 10px;
  font-weight: 600;
  padding: 1px 8px;
  border-radius: 10px;
  margin-left: 6px;
}

.topup-v10 .promote-history .history-arrow {
  font-size: 12px;
  transition: transform 0.25s ease;
}

.topup-v10 .promote-history .history-arrow.open {
  transform: rotate(180deg);
}

.topup-v10 .promote-history .history-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
  width: 100%;
}

.topup-v10 .promote-history .history-content.open {
  max-height: 300px;
  overflow-y: auto;
}

.topup-v10 .promote-history .history-content .history-item {
  padding: 8px 0;
  border-top: 0.5px solid #F0F0F0;
  font-size: 12px;
  color: #666666;
}

.topup-v10 .promote-history .history-content .history-item:first-child {
  border-top: none;
}

/* ============================================================
   7. ★★★ 深色模式适配
   ============================================================ */
.dark .topup-v10 {
  background: #1A1E2A;
}

.dark .topup-v10 .simple-post-selector,
.dark .topup-v10 .recommend-card,
.dark .topup-v10 .real-case-list,
.dark .topup-v10 .asset-summary,
.dark .topup-v10 .promote-history {
  background: #2A2F3D;
}

.dark .topup-v10 .simple-post-selector .selected-name {
  color: #E8E8E8;
}

.dark .topup-v10 .simple-post-selector .dropdown-item {
  color: #AAAAAA;
  border-top-color: #3A3F4D;
}

.dark .topup-v10 .simple-post-selector .dropdown-item.active {
  color: #4A8AB5;
}

.dark .topup-v10 .recommend-card {
  border-color: #3A3F4D;
}

.dark .topup-v10 .recommend-card.focused {
  border-color: #4A8AB5;
}

.dark .topup-v10 .recommend-card .card-name {
  color: #E8E8E8;
}

.dark .topup-v10 .recommend-card .card-price-daily {
  color: #AAAAAA;
}

.dark .topup-v10 .recommend-card .card-price-daily .highlight {
  color: #4A8AB5;
}

.dark .topup-v10 .real-case-list .section-title {
  color: #E8E8E8;
}

.dark .topup-v10 .real-case-list .case-item {
  border-bottom-color: #3A3F4D;
}

.dark .topup-v10 .real-case-list .case-item .case-name {
  color: #CCCCCC;
}

.dark .topup-v10 .real-case-list .case-item .case-stats {
  color: #777777;
}

.dark .topup-v10 .real-case-list .case-item .case-stats .stat-num {
  color: #4A8AB5;
}

.dark .topup-v10 .real-case-list .case-summary {
  border-top-color: #3A3F4D;
  color: #AAAAAA;
}

.dark .topup-v10 .asset-summary {
  color: #777777;
}

.dark .topup-v10 .asset-summary .asset-item .asset-value {
  color: #E8E8E8;
}

.dark .topup-v10 .promote-history {
  color: #777777;
}

.dark .topup-v10 .promote-history .history-content .history-item {
  border-top-color: #3A3F4D;
  color: #AAAAAA;
}

.dark .topup-v10 .recommend-card .card-badge {
  color: #4A8AB5;
  background: rgba(74, 138, 181, 0.12);
}

.dark .topup-v10 .recommend-card .card-savings {
  color: #34D399;
  background: rgba(7, 193, 96, 0.12);
}

.dark .topup-v10 .recommend-card .card-hot {
  color: #FF8A5C;
}

/* ============================================================
   8. ★★★ 高对比度模式适配
   ============================================================ */
.high-contrast .topup-v10 {
  background: #FFFFFF;
}

.high-contrast .topup-v10 .simple-post-selector,
.high-contrast .topup-v10 .recommend-card,
.high-contrast .topup-v10 .real-case-list,
.high-contrast .topup-v10 .asset-summary,
.high-contrast .topup-v10 .promote-history {
  border: 2px solid #000000;
  box-shadow: none;
}

.high-contrast .topup-v10 .recommend-card.focused {
  border-color: #000000;
}

.high-contrast .topup-v10 .recommend-card .purchase-btn {
  background: #000000;
}

.high-contrast .topup-v10 .recommend-card .card-badge {
  border: 1px solid #000000;
  background: #FFFFFF;
  color: #000000;
}

.high-contrast .topup-v10 .recommend-card .card-savings {
  border: 1px solid #000000;
  background: #FFFFFF;
  color: #000000;
}

.high-contrast.dark .topup-v10 {
  background: #1A1E2A;
}

.high-contrast.dark .topup-v10 .simple-post-selector,
.high-contrast.dark .topup-v10 .recommend-card,
.high-contrast.dark .topup-v10 .real-case-list,
.high-contrast.dark .topup-v10 .asset-summary,
.high-contrast.dark .topup-v10 .promote-history {
  border-color: #FFFFFF;
}

.high-contrast.dark .topup-v10 .recommend-card.focused {
  border-color: #FFFFFF;
}

.high-contrast.dark .topup-v10 .recommend-card .purchase-btn {
  background: #FFFFFF;
  color: #000000;
}

.high-contrast.dark .topup-v10 .recommend-card .card-badge {
  border-color: #FFFFFF;
  background: #1A1E2A;
  color: #FFFFFF;
}

.high-contrast.dark .topup-v10 .recommend-card .card-savings {
  border-color: #FFFFFF;
  background: #1A1E2A;
  color: #FFFFFF;
}

/* ============================================================
   9. ★★★ 关怀模式适配
   ============================================================ */
.care-mode .topup-v10 {
  padding: 16px 20px 40px;
  font-size: 18px;
}

.care-mode .topup-v10 .simple-post-selector {
  padding: 12px 18px;
  border-radius: 16px;
}

.care-mode .topup-v10 .simple-post-selector .selector-label {
  font-size: 16px;
}

.care-mode .topup-v10 .simple-post-selector .selected-name {
  font-size: 17px;
}

.care-mode .topup-v10 .simple-post-selector .dropdown-item {
  font-size: 16px;
  padding: 12px 0;
}

.care-mode .topup-v10 .recommend-card {
  padding: 24px 24px 20px;
  border-radius: 28px;
}

.care-mode .topup-v10 .recommend-card .card-name {
  font-size: 26px;
}

.care-mode .topup-v10 .recommend-card .card-price-daily {
  font-size: 18px;
}

.care-mode .topup-v10 .recommend-card .purchase-btn {
  height: 64px;
  font-size: 20px;
  border-radius: 20px;
}

.care-mode .topup-v10 .recommend-card .card-badge {
  font-size: 13px;
  padding: 3px 16px;
}

.care-mode .topup-v10 .recommend-card .card-savings {
  font-size: 15px;
  padding: 3px 16px;
}

.care-mode .topup-v10 .real-case-list {
  padding: 20px 20px 18px;
  border-radius: 20px;
}

.care-mode .topup-v10 .real-case-list .section-title {
  font-size: 18px;
}

.care-mode .topup-v10 .real-case-list .case-item {
  padding: 10px 0;
}

.care-mode .topup-v10 .real-case-list .case-item .case-name {
  font-size: 16px;
}

.care-mode .topup-v10 .real-case-list .case-item .case-stats {
  font-size: 14px;
}

.care-mode .topup-v10 .real-case-list .case-summary {
  font-size: 16px;
  padding-top: 14px;
}

.care-mode .topup-v10 .asset-summary {
  font-size: 16px;
  padding: 14px 0;
  border-radius: 16px;
}

.care-mode .topup-v10 .promote-history {
  font-size: 16px;
  padding: 12px 20px;
  border-radius: 16px;
}

/* ============================================================
   10. ★★★ 响应式适配
   ============================================================ */
/* 小屏手机 (375px) */
@media (max-width: 375px) {
  .topup-v10 {
    padding: 10px 12px 24px;
  }

  .topup-v10 .recommend-card {
    padding: 16px 16px 12px;
    border-radius: 20px;
  }

  .topup-v10 .recommend-card .card-name {
    font-size: 20px;
  }

  .topup-v10 .recommend-card .card-price-daily {
    font-size: 14px;
  }

  .topup-v10 .recommend-card .purchase-btn {
    height: 50px;
    font-size: 16px;
    border-radius: 14px;
  }

  .topup-v10 .real-case-list {
    padding: 12px 12px 10px;
    border-radius: 14px;
  }

  .topup-v10 .real-case-list .case-item .case-stats {
    font-size: 11px;
  }

  .topup-v10 .asset-summary {
    gap: 10px;
    font-size: 12px;
    padding: 10px 0;
  }

  .topup-v10 .promote-history {
    font-size: 12px;
    padding: 8px 12px;
  }

  .topup-v10 .simple-post-selector {
    padding: 8px 12px;
  }

  .topup-v10 .simple-post-selector .selected-name {
    font-size: 13px;
  }
}

/* 超小屏手机 (320px) */
@media (max-width: 320px) {
  .topup-v10 {
    padding: 8px 8px 20px;
  }

  .topup-v10 .recommend-card {
    padding: 12px 12px 10px;
    border-radius: 16px;
  }

  .topup-v10 .recommend-card .card-name {
    font-size: 18px;
  }

  .topup-v10 .recommend-card .card-price-daily {
    font-size: 13px;
  }

  .topup-v10 .recommend-card .purchase-btn {
    height: 44px;
    font-size: 14px;
    border-radius: 12px;
  }

  .topup-v10 .real-case-list .case-item {
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
  }

  .topup-v10 .real-case-list .case-item .case-stats {
    font-size: 11px;
  }

  .topup-v10 .asset-summary {
    flex-wrap: wrap;
    gap: 6px;
    font-size: 11px;
    padding: 8px 0;
  }

  .topup-v10 .promote-history {
    font-size: 11px;
    padding: 6px 10px;
  }
}

/* ============================================================
   11. ★★★ 减少动画
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
  .topup-v10 .recommend-card::before {
    animation: none;
  }

  .topup-v10 .simple-post-selector .selector-arrow {
    transition: none;
  }

  .topup-v10 .simple-post-selector .selector-dropdown {
    transition: none;
  }

  .topup-v10 .recommend-card .purchase-btn .btn-arrow {
    transition: none;
  }

  .topup-v10 .recommend-card .package-details {
    transition: none;
  }

  .topup-v10 .promote-history .history-arrow {
    transition: none;
  }

  .topup-v10 .promote-history .history-content {
    transition: none;
  }

  .topup-v10 .simple-post-selector .selector-arrow.open {
    transform: rotate(0deg);
  }

  .topup-v10 .promote-history .history-arrow.open {
    transform: rotate(0deg);
  }
}

/* ============================================================
   12. ★★★ 滚动条美化
   ============================================================ */
.topup-v10 .selector-dropdown::-webkit-scrollbar,
.topup-v10 .history-content::-webkit-scrollbar {
  width: 3px;
}

.topup-v10 .selector-dropdown::-webkit-scrollbar-track,
.topup-v10 .history-content::-webkit-scrollbar-track {
  background: transparent;
}

.topup-v10 .selector-dropdown::-webkit-scrollbar-thumb,
.topup-v10 .history-content::-webkit-scrollbar-thumb {
  background: #D0D0D0;
  border-radius: 3px;
}

.dark .topup-v10 .selector-dropdown::-webkit-scrollbar-thumb,
.dark .topup-v10 .history-content::-webkit-scrollbar-thumb {
  background: #4A4F5D;
}