:root,
body,
page {
  --color-bg: #EEF3EF;
  --color-section: #EEF3EF;
  --color-header: #EEF3EF;
  --color-border: #D5DED8;
  --color-border-strong: #C3D0C8;
  --color-brand-ink: #063F2C;
  --color-brand-ink-pressed: #052E22;
  --color-danger-muted: #E8ECEA;
  --color-gold: #C89A3D;
  --color-gold-soft: #F2E3BF;
  --color-surface: #FFFEFB;
  --color-surface-muted: #EEF3EF;
  --color-surface-selected: #E3ECE6;
  --color-image-placeholder: #EEF3EF;
  --color-text-primary: #13201B;
  --color-text-secondary: #66736D;
  --color-text-tertiary: #8B948F;
  --radius-sm: 4PX;
  --radius-md: 8PX;
  --radius-pill: 999PX;
  --font-label: 11PX;
  --font-caption: 12PX;
  --font-meta: 12PX;
  --font-body: 14PX;
  --font-control: 14PX;
  --font-subtitle: 16PX;
  --font-title: 22PX;
  --font-display: 30PX;
  --line-height-compact: 1.35;
  --line-height-body: 1.65;
  --screen-w: 100vw;
  --content-w: calc(100vw - 32PX);
  --status-h: 44PX;
  --nav-h: 52PX;
  --tab-h: 64PX;
  --safe-top: 44PX;
  --safe-bottom: 0PX;
  --capsule-right-space: 108PX;
}

body,
page {
  background: var(--color-bg);
  color: var(--color-text-primary);
  font-family: "Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: var(--font-body);
  line-height: var(--line-height-body);
  letter-spacing: 0;
}

html,
#app,
.taro_router,
.taro_page {
  min-height: 100%;
  background: var(--color-bg) !important;
  touch-action: pan-x pan-y;
}

/* 页面禁止手势缩放；大图预览由 Taro Swiper 的 zoom 手势单独接管。 */
.preview-image,
.preview-image taro-swiper-core,
.preview-image taro-swiper-item-core,
.preview-image .swiper-zoom-container {
  touch-action: none;
}

.taro-tabbar__tabbar {
  display: none !important;
}

.taro-tabbar__panel {
  height: 100vh !important;
}

.page {
  width: 100%;
  max-width: var(--screen-w);
  min-height: 100vh;
  margin: 0 auto;
  padding: 0;
  box-sizing: border-box;
  background: var(--color-bg);
  overflow-x: hidden;
}

.section {
  margin-top: 16PX;
}

.muted {
  color: var(--color-text-secondary);
}

taro-text-core,
taro-view-core,
taro-input-core {
  box-sizing: border-box;
}

taro-image-core {
  display: block;
}

@media (min-width: 600px) {
  :root,
  body,
  page {
    --screen-w: min(100vw, 1040PX);
    --content-w: calc(var(--screen-w) - 48PX);
    --safe-top: 0PX;
    --safe-bottom: 0PX;
    --capsule-right-space: 16PX;
  }

  .page {
    max-width: var(--screen-w);
  }
}

@media (min-width: 1180px) {
  :root,
  body,
  page {
    --screen-w: 1120PX;
    --content-w: 1040PX;
  }
}
