/* ==========================================================================
   文本工具组件 (Text Utilities)
   ==========================================================================
   提供通用文本展示能力，避免各业务模块重复声明多行截断 / 展开态 / 免裁剪逻辑。

   适用场景：
   1. 日志消息摘要
   2. 卡片描述摘要
   3. 列表说明文案
   4. 查看详情前的预览文本
   ========================================================================== */

/* 基础文本类：用于承接公共排版 token。 */
.zuoekai-text {
  margin: 0;
  color: inherit;
  line-height: inherit;
  word-wrap: break-word;
}

/* --------------------------------------------------------------------------
   多行截断（Line Clamp）
   通过 --zuoekai-text-clamp-lines 控制行数，默认由具体分支赋值。
   -------------------------------------------------------------------------- */
.zuoekai-text[class*="zuoekai-text--clamp-"] {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--zuoekai-text-clamp-lines, 3);
  overflow: hidden;
}

.zuoekai-text--clamp-2 {
  --zuoekai-text-clamp-lines: 2;
}

.zuoekai-text--clamp-3 {
  --zuoekai-text-clamp-lines: 3;
}

.zuoekai-text--clamp-4 {
  --zuoekai-text-clamp-lines: 4;
}

/* 展开状态：恢复完整内容。 */
.zuoekai-text--expanded {
  -webkit-line-clamp: unset;
  overflow: visible;
}

/* 文本本身未超过目标行数时，直接取消裁剪。 */
.zuoekai-text--no-clamp {
  -webkit-line-clamp: unset;
  overflow: visible;
}
