/* ─── BFST-HHR Base Design Tokens ────────────────────────────────
   从主应用 css/shared.css 抽取的独立基座，供合伙人中心页面使用。
   模块内不依赖主应用任何资源。
   ─────────────────────────────────────────────────────────────── */

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

:root {
  /* 主色：温暖紫 */
  --primary: oklch(95% 0.04 290);
  --primary-dark: oklch(92% 0.08 300);
  --accent: oklch(62% 0.22 290);
  --accent-dark: oklch(45% 0.18 280);
  --accent-teal: #0EA5E9;

  /* 表面 */
  --background: oklch(98% 0.008 300);
  --surface: oklch(100% 0 0);

  /* 文字 */
  --text-primary: oklch(14% 0.015 260);
  --text-secondary: oklch(40% 0.012 260);
  --text-placeholder: oklch(52% 0.012 260);
  --text-muted: oklch(52% 0.012 260);

  /* 边框 */
  --border: oklch(92% 0.012 290);

  /* 阴影 */
  --shadow: 0 2px 12px rgba(15, 23, 42, 0.04);
  --shadow-lg: 0 4px 18px rgba(139, 92, 246, 0.08);

  /* 状态色 */
  --success: oklch(58% 0.18 145);
  --warning: oklch(68% 0.16 75);
  --error: oklch(55% 0.20 28);
  --danger: oklch(55% 0.20 28);
  --vip: oklch(68% 0.16 75);

  --accent-green: oklch(58% 0.18 145);
  --accent-orange: oklch(68% 0.16 75);

  /* 字号 */
  --font-size-xs: 12px;
  --font-size-sm: 13px;
  --font-size-base: 15px;
  --font-size-lg: 17px;
  --font-size-xl: 20px;
  --font-size-2xl: 26px;
  --font-size-3xl: 32px;

  /* 间距 */
  --spacing-xs: 4px;
  --spacing-sm: 8px;
  --spacing-base: 12px;
  --spacing-lg: 16px;
  --spacing-xl: 24px;
  --spacing-2xl: 32px;

  /* 圆角 */
  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 20px;
  --radius-xl: 28px;
  --radius-full: 9999px;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Noto Sans SC', 'Microsoft YaHei', system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background: var(--background);
  color: var(--text-primary);
  overflow-x: hidden;
  min-height: 100vh;
  line-height: 1.55;
}

html {
  overflow-x: hidden;
  scroll-behavior: smooth;
}

/* 通用容器 */
.app-container {
  max-width: 430px;
  margin: 0 auto;
  min-height: 100vh;
  position: relative;
  background: var(--surface);
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}
.fade-in {
  animation: fadeIn 0.3s ease both;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}
