/* 按钮尺寸 */
.btn-sm {
  padding: var(--spacing_xs) var(--spacing_sm);
  font-size: var(--font_size_sm);
}

.btn-lg {
  padding: var(--spacing_base) var(--spacing_lg);
  font-size: var(--font_size_lg);
}

.btn-xl {
  padding: var(--spacing_md) var(--spacing_xl);
  font-size: var(--font_size_xl);
}

/* 输入框 */
.input-sm {
  padding: var(--spacing_xs) var(--spacing_sm);
  font-size: var(--font_size_sm);
}

.input-lg {
  padding: var(--spacing_base) var(--spacing_lg);
  font-size: var(--font_size_lg);
}

.input-xl {
  padding: var(--spacing_md) var(--spacing_xl);
  font-size: var(--font_size_xl);
}

.textarea-sm {
  padding: var(--spacing_xs) var(--spacing_sm);
  font-size: var(--font_size_sm);
}

.textarea-lg {
  padding: var(--spacing_base) var(--spacing_lg);
  font-size: var(--font_size_lg);
}

.select-sm {
  padding: var(--spacing_xs) var(--spacing_sm);
  font-size: var(--font_size_sm);
}

.select-lg {
  padding: var(--spacing_base) var(--spacing_lg);
  font-size: var(--font_size_lg);
}

/* 复选框/单选框 */
.checkbox-sm,
.radio-sm {
  gap: var(--spacing_half);
  font-size: var(--font_size_sm);
}

.checkbox-lg,
.radio-lg {
  gap: var(--spacing_sm);
  font-size: var(--font_size_lg);
}

/* 开关 */
.switch-sm {
  width: 2rem;
  height: 1.2rem;
}

.switch-sm .switch_slider::before {
  height: 1rem;
  width: 1rem;
  left: 0.1rem;
  bottom: 0.1rem;
}

.switch-sm input:checked+.switch_slider::before {
  transform: translateX(0.8rem);
}

.switch-lg {
  width: 3rem;
  height: 1.8rem;
}

.switch-lg .switch_slider::before {
  height: 1.5rem;
  width: 1.5rem;
}

.switch-lg input:checked+.switch_slider::before {
  transform: translateX(1.2rem);
}

/* 滑块 */
.slider-sm::-webkit-slider-thumb {
  width: 0.75rem;
  height: 0.75rem;
}

.slider-lg::-webkit-slider-thumb {
  width: 1.25rem;
  height: 1.25rem;
}

/* 评分 */
.rate-sm {
  font-size: var(--font_size_lg);
}

.rate-lg {
  font-size: var(--font_size_xxl);
}

.rate-xl {
  font-size: 2rem;
}

/* 表单项 */
.form_item-sm {
  gap: var(--spacing_half);
}

.form_item-lg {
  gap: var(--spacing_sm);
}

.label-sm {
  font-size: var(--font_size_sm);
}

.label-lg {
  font-size: var(--font_size_lg);
}

/* 提示框 */
.tooltip-sm {
  padding: var(--spacing_half) var(--spacing_xs);
  font-size: var(--font_size_xs);
}

.tooltip-lg {
  padding: var(--spacing_sm) var(--spacing_base);
  font-size: var(--font_size_base);
}

.popover-sm {
  padding: var(--spacing_sm);
  max-width: 12rem;
}

.popover-lg {
  padding: var(--spacing_lg);
  max-width: 24rem;
}

/* 模态框内容宽度 */
.modal-sm .modal_content {
  width: 24rem;
}

.modal-lg .modal_content {
  width: 48rem;
}

.modal-xl .modal_content {
  width: 64rem;
}

/* 抽屉宽度 */
.drawer-sm {
  width: 16rem;
}

.drawer-lg {
  width: 24rem;
}

.drawer-xl {
  width: 32rem;
}

/* 下拉菜单最小宽度 */
.dropdown_menu-sm {
  min-width: 8rem;
}

.dropdown_menu-lg {
  min-width: 14rem;
}

.menu_item-sm {
  padding: var(--spacing_xs) var(--spacing_sm);
  font-size: var(--font_size_sm);
}

.menu_item-lg {
  padding: var(--spacing_base) var(--spacing_lg);
  font-size: var(--font_size_lg);
}

/* 标签页 */
.tab-sm {
  padding: var(--spacing_xs) var(--spacing_sm);
  font-size: var(--font_size_sm);
}

.tab-lg {
  padding: var(--spacing_base) var(--spacing_lg);
  font-size: var(--font_size_lg);
}

/* 卡片内部填充 */
.card-sm .card_header,
.card-sm .card_footer,
.card-sm .card_body {
  padding: var(--spacing_sm);
}

.card-lg .card_header,
.card-lg .card_footer,
.card-lg .card_body {
  padding: var(--spacing_lg);
}

/* 头像 */
.avatar-sm {
  width: 1.5rem;
  height: 1.5rem;
}

.avatar-lg {
  width: 3rem;
  height: 3rem;
}

.avatar-xl {
  width: 4rem;
  height: 4rem;
}

/* 徽标 */
.badge-sm {
  padding: 0.125rem 0.375rem;
  font-size: var(--font_size_xs);
}

.badge-lg {
  padding: 0.375rem 0.75rem;
  font-size: var(--font_size_base);
}

.tag-sm {
  padding: 0 0.25rem;
  font-size: 0.625rem;
}

.tag-lg {
  padding: 0.25rem 0.5rem;
  font-size: var(--font_size_sm);
}

/* 警告提示 */
.alert-sm {
  padding: var(--spacing_sm);
}

.alert-lg {
  padding: var(--spacing_lg);
  font-size: var(--font_size_lg);
}

/* 全局提示 */
.message-sm,
.notification-sm {
  padding: var(--spacing_xs) var(--spacing_sm);
  font-size: var(--font_size_sm);
}

.message-lg,
.notification-lg {
  padding: var(--spacing_base) var(--spacing_lg);
  font-size: var(--font_size_lg);
}

/* 进度条高度 */
.progress-sm {
  height: 0.375rem;
}

.progress-lg {
  height: 1rem;
}

.progress-xl {
  height: 1.25rem;
}

/* 加载器 */
.spinner-sm {
  width: 1rem;
  height: 1rem;
  border-width: 0.0625rem;
}

.spinner-lg {
  width: 2rem;
  height: 2rem;
  border-width: 0.1875rem;
}

/* 面包屑 */
.breadcrumb_item-sm {
  font-size: var(--font_size_sm);
}

.breadcrumb_item-lg {
  font-size: var(--font_size_lg);
}

/* 分页 */
.pagination_item-sm {
  padding: var(--spacing_xs) var(--spacing_sm);
  font-size: var(--font_size_sm);
}

.pagination_item-lg {
  padding: var(--spacing_base) var(--spacing_lg);
  font-size: var(--font_size_lg);
}

/* 步骤条指示器 */
.step-sm .step_indicator {
  width: 1.5rem;
  height: 1.5rem;
  line-height: 1.5rem;
  font-size: var(--font_size_sm);
}

.step-lg .step_indicator {
  width: 2.5rem;
  height: 2.5rem;
  line-height: 2.5rem;
  font-size: var(--font_size_lg);
}

/* 表格单元格内边距 */
.table-sm th,
.table-sm td {
  padding: var(--spacing_xs) var(--spacing_sm);
}

.table-lg th,
.table-lg td {
  padding: var(--spacing_base) var(--spacing_lg);
}

/* 列表项 */
.list_item-sm {
  padding: var(--spacing_xs) 0;
}

.list_item-lg {
  padding: var(--spacing_base) 0;
}

/* 图片最大宽度 */
.img-sm {
  max-width: var(--img_size_sm);
}

.img-md {
  max-width: var(--img_size_md);
}

.img-lg {
  max-width: var(--img_size_lg);
}

.img-xl {
  max-width: var(--img_size_xl);
}

.img-xxl {
  max-width: var(--img_size_xxl);
}

/* 图标尺寸 */
.icon-sm {
  width: var(--icon_size_sm);
  height: var(--icon_size_sm);
}

.icon-lg {
  width: var(--icon_size_lg);
  height: var(--icon_size_lg);
}

.icon-xl {
  width: var(--icon_size_xl);
  height: var(--icon_size_xl);
}

.icon-xl-ios {
  width: var(--icon_size_xxl_ios);
  height: var(--icon_size_xxl_ios);
}

.icon-xxl {
  width: var(--icon_size_xxl);
  height: var(--icon_size_xxl);
}

/* 链接字号 */
.link-sm {
  font-size: var(--font_size_sm);
}

.link-lg {
  font-size: var(--font_size_lg);
}

/* 标题覆盖（可选） */
.hsm {
  font-size: var(--font_size_sm);
}

.hlg {
  font-size: var(--font_size_lg);
}

/* 段落 */
.p-sm {
  font-size: var(--font_size_sm);
  line-height: var(--line_height_base);
}

.p-lg {
  font-size: var(--font_size_lg);
  line-height: var(--line_height_loose);
}

/* 文本字号 */
.text-sm {
  font-size: var(--font_size_sm);
}

.text-lg {
  font-size: var(--font_size_lg);
}

.text-xl {
  font-size: var(--font_size_xl);
}

/* 代码块 */
.code-sm {
  font-size: var(--font_size_xs);
  padding: 0.0625rem 0.125rem;
}

.code-lg {
  font-size: var(--font_size_base);
  padding: 0.25rem 0.5rem;
}

/* 引用内边距 */
.blockquote-sm {
  padding-left: var(--spacing_sm);
  font-size: var(--font_size_sm);
}

.blockquote-lg {
  padding-left: var(--spacing_lg);
  font-size: var(--font_size_lg);
}

/* 图形宽度 */
.figure-sm {
  max-width: 12rem;
}

.figure-lg {
  max-width: 24rem;
}

.figcaption-sm {
  font-size: var(--font_size_xs);
}

.figcaption-lg {
  font-size: var(--font_size_base);
}

/* 时间/地址字号 */
.time-sm,
.address-sm {
  font-size: var(--font_size_sm);
}

.time-lg,
.address-lg {
  font-size: var(--font_size_lg);
}