/**
 * 响应式 token
 *
 * 设计稿基准：1080x1920 @2x，因此 CSS 设计宽度为 540px。
 * 原则：
 * - 桌面调试最大宽度使用 --shell-max-width / --app-max-width。
 * - 组件尺寸使用 clamp(min, design-ratio vw, design-value)，在 320-540px
 *   之间平滑缩放，并避免小屏过度压缩。
 * - 业务 CSS 优先使用语义 token，避免页面散落硬编码尺寸。
 */
:root {
  --app-design-width: 540px;
  --app-max-width: var(--shell-max-width, 540px);
  --app-viewport-height: 100dvh;
  --app-visible-height: 100dvh;
  --app-safe-top: env(safe-area-inset-top, 0px);
  --app-safe-right: env(safe-area-inset-right, 0px);
  --app-safe-bottom: env(safe-area-inset-bottom, 0px);
  --app-safe-left: env(safe-area-inset-left, 0px);

  /* 56px @2x = 28px；小屏保留至少 22px，避免内容贴边。 */
  --page-padding-x: clamp(18px, 5.185vw, 28px);
  --page-padding-y: clamp(14px, 3.333vw, 20px);
  --page-section-gap: clamp(12px, 3.333vw, 18px);
  --page-section-gap-lg: clamp(16px, 4.444vw, 24px);

  /* 页面级语义尺寸 */
  --responsive-display-title: clamp(28px, 6.296vw, 34px);
  --responsive-page-title: clamp(22px, 5.185vw, 28px);
  --responsive-section-title: clamp(17px, 3.704vw, 20px);
  --responsive-card-title: clamp(16px, 3.333vw, 18px);
  --responsive-body: clamp(14px, 2.963vw, 16px);
  --responsive-caption: clamp(12px, 2.407vw, 13px);
  --responsive-micro: clamp(10px, 2.222vw, 12px);

  --responsive-card-radius: clamp(20px, 5.185vw, 28px);
  --responsive-card-radius-sm: clamp(18px, 4.074vw, 22px);
  --responsive-card-padding: clamp(14px, 3.333vw, 18px);
  --responsive-card-padding-lg: clamp(18px, 4.074vw, 22px);
  --responsive-control-height: clamp(44px, 8.889vw, 48px);
  --responsive-icon-button-size: clamp(38px, 8.148vw, 44px);
  --responsive-icon-size-sm: clamp(14px, 2.963vw, 16px);
  --responsive-icon-size-md: clamp(18px, 4.444vw, 24px);
  --responsive-spinner-size: clamp(16px, 3.333vw, 18px);
  --responsive-dot-size: clamp(6px, 1.481vw, 8px);
  --responsive-inline-gap-xs: clamp(4px, 0.926vw, 5px);
  --responsive-pill-padding-sm: clamp(3px, 0.741vw, 4px)
    clamp(7px, 1.667vw, 9px);

  /* Chat 专用响应式尺寸 */
  --chat-inline-padding: clamp(14px, 3.704vw, 20px);
  --chat-bubble-max-width: min(75%, 280px);
  --chat-media-size: min(64vw, 240px);
  --chat-avatar-size: clamp(38px, 7.963vw, 43px);
  --chat-send-button-size: clamp(40px, 8.148vw, 44px);

  /* Profile 专用响应式尺寸 */
  --profile-user-padding-y: clamp(18px, 3.704vw, 20px);
  --profile-card-gap-y: clamp(6px, 1.481vw, 8px);
  --profile-card-padding-x: clamp(18px, 5.185vw, 28px);
  --profile-card-padding-y: clamp(16px, 3.333vw, 18px);
  --profile-card-padding-right: clamp(10px, 2.222vw, 12px);
  --profile-avatar-size: clamp(48px, 10.37vw, 56px);
  --profile-voice-image-size: clamp(84px, 18.519vw, 100px);

  /* 响应式字体：按 540px 设计宽度换算，并给小屏设置可读下限。 */
  --font-responsive-md: clamp(14px, 2.963vw, 16px);
  --font-responsive-lg: clamp(16px, 3.333vw, 18px);
  --font-responsive-xl: clamp(18px, 3.704vw, 20px);
  --font-responsive-number-lg: clamp(24px, 5.556vw, 30px);

  /* Subscription 专用响应式尺寸 */
  --subscription-section-notch-size: clamp(18px, 4.444vw, 24px);
  --subscription-plan-grid-gap: clamp(7px, 1.667vw, 9px);
  --subscription-plan-card-min-height: clamp(108px, 23.704vw, 128px);
  --subscription-plan-title-size: clamp(16px, 3.519vw, 19px);
  --subscription-price-size-lg: clamp(24px, 5.556vw, 30px);
  --subscription-offer-badge-padding: clamp(4px, 0.741vw, 5px)
    clamp(7px, 1.481vw, 8px);
  --subscription-coin-icon-size: clamp(28px, 5.926vw, 32px);
  --subscription-coin-svg-size: clamp(16px, 3.333vw, 18px);
  --subscription-coin-column-width: clamp(42px, 8.889vw, 48px);
}
