/* ==============================================
分类：间距、布局、文字、宽高、边框、状态、溢出、适配
============================================== */

/* ====================== 一、外边距 margin ====================== */
/* 上下左右统一 */
.m0 { margin: 0 !important; }
.m-xxs{ margin: var(--space-xxs) !important; }
.m-xs { margin: var(--space-xs) !important; }
.m-sm { margin: var(--space-sm) !important; }
.m-md { margin: var(--space-md) !important; }
.m-lg { margin: var(--space-lg) !important; }
.m-xl { margin: var(--space-xl) !important; }

/* 上外边距 mt */
.mt0 { margin-top: 0 !important; }
.mt-xxs { margin-top: var(--space-xxs) !important; }
.mt-xs { margin-top: var(--space-xs) !important; }
.mt-sm { margin-top: var(--space-sm) !important; }
.mt-md { margin-top: var(--space-md) !important; }
.mt-lg { margin-top: var(--space-lg) !important; }
.mt-xl { margin-top: var(--space-xl) !important; }

/* 下外边距 mb */
.mb0 { margin-bottom: 0 !important; }
.mb-xxs{ margin-bottom: var(--space-xxs) !important; }
.mb-xs { margin-bottom: var(--space-xs) !important; }
.mb-sm { margin-bottom: var(--space-sm) !important; }
.mb-md { margin-bottom: var(--space-md) !important; }
.mb-lg { margin-bottom: var(--space-lg) !important; }
.mb-xl { margin-bottom: var(--space-xl) !important; }

/* 左外边距 ml */
.ml0 { margin-left: 0 !important; }
.ml-xxs { margin-left: var(--space-xxs) !important; }
.ml-xs { margin-left: var(--space-xs) !important; }
.ml-sm { margin-left: var(--space-sm) !important; }
.ml-md { margin-left: var(--space-md) !important; }
.ml-lg { margin-left: var(--space-lg) !important; }

/* 右外边距 mr */
.mr0 { margin-right: 0 !important; }
.mr-xxs { margin-right: var(--space-xxs) !important; }
.mr-xs { margin-right: var(--space-xs) !important; }
.mr-sm { margin-right: var(--space-sm) !important; }
.mr-md { margin-right: var(--space-md) !important; }
.mr-lg { margin-right: var(--space-lg) !important; }

/* 水平左右 mx */
.mx-auto { margin-left: auto !important; margin-right: auto !important; }

/* ====================== 二、内边距 padding ====================== */
.p0 { padding: 0 !important; }
.p-xs { padding: var(--space-xs) !important; }
.p-sm { padding: var(--space-sm) !important; }
.p-md { padding: var(--space-md) !important; }
.p-lg { padding: var(--space-lg) !important; }

.pt0 { padding-top: 0 !important; }
.pt-xxs { padding-top: var(--space-xxs) !important; }
.pt-xs { padding-top: var(--space-xs) !important; }
.pt-sm { padding-top: var(--space-sm) !important; }
.pt-md { padding-top: var(--space-md) !important; }
.pb0 { padding-bottom: 0 !important; }
.pb-xxs { padding-bottom: var(--space-xxs) !important; }
.pb-xs { padding-bottom: var(--space-xs) !important; }
.pb-sm { padding-bottom: var(--space-sm) !important; }
.pl0 { padding-left: 0 !important; }
.pr0 { padding-right: 0 !important; }
.pr-sm { padding-right: var(--space-sm) !important; }
.px-xxs{ padding-left: var(--space-xxs) !important; padding-right: var(--space-xxs) !important; }
.px-xs { padding-left: var(--space-xs) !important; padding-right: var(--space-xs) !important; }
.px-sm { padding-left: var(--space-sm) !important; padding-right: var(--space-sm) !important; }
.px-md { padding-left: var(--space-md) !important; padding-right: var(--space-md) !important; }
.py-xxs { padding-top: var(--space-xxs) !important; padding-bottom: var(--space-xxs) !important; }
.py-xs { padding-top: var(--space-xs) !important; padding-bottom: var(--space-xs) !important; }
.py-sm { padding-top: var(--space-sm) !important; padding-bottom: var(--space-sm) !important; }
.py-md { padding-top: var(--space-md) !important; padding-bottom: var(--space-md) !important; }

/* ====================== 三、Flex 弹性布局 ====================== */
.flex { display: flex !important; }
.flex-column { flex-direction: column !important; }
.flex-wrap { flex-wrap: wrap !important; }
.flex-row {flex-direction: row !important;}
.flex-nowrap { flex-wrap: nowrap !important; }

/* 水平对齐 justify-content */
.justify-between { justify-content: space-between !important; }
.justify-around { justify-content: space-around !important; }
.justify-center { justify-content: center !important; }
.justify-start { justify-content: flex-start !important; }
.justify-end { justify-content: flex-end !important; }

/* 垂直对齐 align-items */
.align-center { align-items: center !important; }
.align-start { align-items: flex-start !important; }
.align-end { align-items: flex-end !important; }
.align-stretch { align-items: stretch !important; }

/* 子元素伸缩 */
.flex-1 { flex: 1 !important; }
.flex-shrink0 { flex-shrink: 0 !important; }

/* 间隙 gap */
.gap-xxs { gap: var(--space-xxs) !important; }
.gap-xs { gap: var(--space-xs) !important; }
.gap-sm { gap: var(--space-sm) !important; }
.gap-md { gap: var(--space-md) !important; }

/* ====================== 四、显示 / 隐藏 / 定位 ====================== */
.hidden { display: none !important; }
.block { display: block !important; }
.inline { display: inline !important; }
.inline-block { display: inline-block !important; }

.relative { position: relative !important; }
.absolute { position: absolute !important; }
.fixed { position: fixed !important; }

.top0 { top: 0 !important; }
.left0 { left: 0 !important; }
.right0 { right: 0 !important; }
.bottom0 { bottom: 0 !important; }
.inset0 { inset: 0 !important; }

/* ====================== 五、文字样式 ====================== */
/* 对齐 */
.text-left { text-align: left !important; }
.text-center { text-align: center !important; }
.text-right { text-align: right !important; }

/* 字号 */
.text-xs{font-size: var(--font-xs) !important; }
.text-13{font-size: var(--font-13) !important; }
.text-sm { font-size: var(--font-sm) !important; }
.text-md { font-size: var(--font-md) !important; }
.text-lg { font-size: var(--font-lg) !important; }
.text-xl { font-size: var(--font-xl) !important; }
.text-xxl{ font-size: var(--font-xxl) !important; }
/* 字重 */
.font-normal { font-weight: 400 !important; }
.font-bold { font-weight: 700 !important; }

/* 颜色 */
.text-white { color: var(--color-white) !important; }
.text-primary { color: var(--color-primary) !important; }
.text-success { color: var(--color-success) !important; }
.text-danger { color: var(--color-danger) !important; }
.text-warning { color: var(--color-warning) !important; }
.text-main { color: var(--color-text) !important; }
.text-sub { color: var(--color-text-2) !important; }
.text-black { color: var(--color-black) !important; }
.text-gray { color: var(--color-gray) !important; }
.text-grey { color: var(--color-grey) !important; }
.text-red { color: var(--color-red) !important; }
.text-yellow{ color: var(--color-yellow) !important; }
.text-blue{ color: var(--color-blue) !important; }
.text-purple{ color: var(--color-purple) !important; }
.text-purple-1{ color: var(--color-purple-1) !important; }
.text-green{color: var(--color-green) !important; }
/* 行高 */
.lh1 { line-height: 1 !important; }
.lh-base { line-height: 1.5 !important; }

/* 文字选中、禁止选中 */
.no-select { user-select: none !important; }
.underline { text-decoration: underline !important; }
.no-underline { text-decoration: none !important; }

/* ====================== 六、文本溢出省略 ====================== */
/* 单行省略 */
.ellipsis {
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}
/* 两行省略 */
.ellipsis-2 {
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}
/* 三行省略 */
.ellipsis-3 {
  display: -webkit-box !important;
  -webkit-line-clamp: 3 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

/* ====================== 七、宽高、溢出 ====================== */
.w-full { width: 100% !important; }
.h-full { height: 100% !important; }
.w-50 { width: 100% !important; }
.h-50 { height: 100% !important; }
.w-auto { width: auto !important; }
.h-auto { height: auto !important; }

.overflow-hidden { overflow: hidden !important; }
.overflow-auto { overflow: auto !important; }
.overflow-y-auto { overflow-y: auto !important; }

/* ====================== 八、圆角、阴影、边框 ====================== */
.radius-sm { border-radius: var(--radius-sm) !important; }
.radius-md { border-radius: var(--radius-md) !important; }
.radius-lg { border-radius: var(--radius-lg) !important; }
.radius-full { border-radius: var(--radius-full) !important; }
.radius-none { border-radius: 0 !important; }

.shadow-sm { box-shadow: var(--shadow-sm) !important; }
.shadow-md { box-shadow: var(--shadow-md) !important; }
.shadow-none { box-shadow: none !important; }

.border { border: 1px solid var(--color-border) !important; }
.border-top { border-top: 1px solid var(--color-border) !important; }
.border-bottom { border-bottom: 1px solid var(--color-border) !important; }
.border-none { border: none !important; }

/* ====================== 九、背景色 ====================== */
.bg-white { background-color: var(--color-white) !important; }
.bg-gray { background-color: var(--color-bg-gray) !important; }
.bg-red { background-color: var(--color-bg-red) !important; }
.bg-green { background-color: var(--color-success) !important; }
.bg-transparent { background: transparent !important; }


/* ====================== 十、鼠标、光标 ====================== */
.cursor-pointer { cursor: pointer !important; }
.cursor-not { cursor: not-allowed !important; }