.WgpiA {
    width: calc(100vw - 48px);
}

.source-manage-list {
    border-radius: 3px;
    width: calc(100vw - 311px);
}

    @media (max-width: 1248px) {.source-manage-list {
        width: 1150px
}
    }

/* AgentAvatar 组件样式（自 index.module.css 原文迁出，规则未改写） */
.aWeWe,
.NMlFC {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: #196eef;
}
.aWeWe {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    font-size: 24px;
    box-shadow: 0 8px 20px rgba(25, 110, 239, .18);
}
.NMlFC {
    width: 32px;
    height: 32px;
    margin-top: 7px;
    border-radius: 50%;
    color: transparent;
    background: #fff;
    font-size: 13px;
}
/* 头像为完整的圆形 Logo 图，直接按容器等比缩放 */
.aWeWe img {
    display: block;
    flex-shrink: 0;
    width: 28px;
    height: 28px;
}
.NMlFC img {
    width: 32px;
    height: 32px;
}

/* Composer 组件样式（自 index.module.css 原文迁出，规则未改写）。
   emptyComposer（空态）与 taskComposerGroup（会话态）两组包装类也归本模块，
   因为 .emptyComposer .composer / .taskComposerGroup .composer 等后代选择器要求
   配对类出自同一 CSS Modules 文件——index.tsx 与 EmptyConversation.tsx 从这里引入包装类 */

.ScLog {
    width: 100%;
    margin: 0;
    padding: 0;
}

.TZLKN {
    position: relative;
    padding: 10px 12px 9px;
    border: 1px solid #d7dce7;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 4px 14px rgba(40, 44, 51, .04);
}

.TZLKN:focus-within {
    border-color: #8bb4ff;
    box-shadow: 0 0 0 3px #e3edff;
}

.TZLKN textarea {
    display: block;
    width: 100%;
    min-height: 62px;
    padding: 0;
    border: 0;
    outline: 0;
    color: #282c33;
    background: transparent;
    font: inherit;
    font-size: 13px;
    line-height: 21px;
    resize: none;

    /* 滚动条常隐：内容超出可视高度时仍可滚轮/键盘滚动，只是不绘制滚动条 */
    scrollbar-width: none;
}

.TZLKN textarea::-webkit-scrollbar {
    display: none;
}

.TZLKN textarea::placeholder {
    color: #a8b0bf;
}

.TZLKN textarea:disabled {
    cursor: not-allowed;
}

.Whvmf {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    margin-top: 7px;
}

/* 超长提示：靠发送按钮左侧。不可用 margin-right:auto 顶到左端——卡片左下角是脱流定位的
   「上传文件」picker（见 .composerUploader > one-uploader-anchor），会与提示文字重叠 */

.borE9 {
    margin-right: 8px;
    color: #b42318;
    font-size: 12px;
    line-height: 18px;
}

.R18KW {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    padding: 0;
    border: 0;
    font: inherit;
    cursor: pointer;

    /* 设计稿渐变圆底已内置于 send-icon 图，按钮不再自绘背景，交互态用透明度反馈 */
    border-radius: 50%;
    background: transparent;
}

.R18KW img {
    display: block;
    width: 100%;
    height: 100%;
}

.R18KW:hover:not(:disabled) {
    opacity: .92;
}

.R18KW:disabled {
    cursor: not-allowed;
    opacity: .55;
}

.uNVwX {
    margin-top: 7px;
    color: #b4bac6;
    font-size: 10px;
    line-height: 16px;
    text-align: center;
}

/* 空态：isolated 层叠上下文让卡片 ::before/::after 光晕（z-index:-1）垫在白底下、页面背景上 */

.BGwsj {
    position: relative;
    isolation: isolate;
    width: 100%;
    margin: 32px 0 0;
    padding-bottom: 0;
}

.BGwsj .TZLKN {
    display: flex;
    box-sizing: border-box;
    min-height: 130px;
    flex-direction: column;

    /* 设计稿渐变描边（Figma 渐变 stroke）：透明边框 + 双层背景，
       白底画 padding-box、渐变画 border-box，渐变只透出 2px 边框环且跟随圆角 */
    padding: 10px;
    border: 2px solid transparent;
    border-radius: 12px;
    background:
        linear-gradient(#fff, #fff) padding-box,
        linear-gradient(278.06deg, #8b58fd -18.38%, #957bff -2.4%, #516cf3 33.12%, #516cf3 57.45%, #3a7bff 85.54%, #2aa8ff 103.35%) border-box;
    box-shadow: none;
}

/* 无附件时卡片高度 135 = 3 行文本 72 + 工具条 7+32 + 内边距边框 24，与 textarea 的
   min-height 对齐；textarea rows 的固有高度参与容器固有高度计算，min-height 压不住，
   故直接锁 height。有附件时本规则失效，卡片随 one-ui 文件列表生长 */

.BGwsj .TZLKN:not(:has([class*=one-uploader-file-item])) {
    height: 135px;
}

/* 设计稿底部光晕：两块 blur(20px) 蓝紫椭圆垫在白底卡片下，从底边透出（Figma 130-94401） */

.BGwsj .TZLKN::before,
.BGwsj .TZLKN::after {
    position: absolute;
    z-index: -1;
    bottom: 0;
    border-radius: 50%;
    content: '';
    filter: blur(20px);
    pointer-events: none;
}

.BGwsj .TZLKN::before {
    left: 47px;
    width: 452px;
    height: 60px;
    background: rgba(67, 117, 250, .16);
}

.BGwsj .TZLKN::after {
    right: 3px;
    width: 480px;
    height: 58px;
    background: rgba(76, 67, 250, .16);
}

/* 默认高度保证完整可见 3 行（3 × 24px 行高）；min-height 是硬保证——滚动条常隐后，
   若被压缩到 3 行以下用户看不到任何提示，只会静默少一行 */

.BGwsj .TZLKN textarea {
    flex: 1;
    box-sizing: border-box;
    min-height: 72px;
    padding-left: 4px;
    font-size: 16px;
    line-height: 24px;
}

.BGwsj .TZLKN textarea::placeholder {
    color: rgba(8, 8, 7, .4);
}

.BGwsj .Whvmf {
    flex-shrink: 0;
}

.BGwsj .TZLKN:focus-within {
    box-shadow: 0 0 0 3px #e3edff;
}

.BGwsj .R18KW {
    width: 32px;
    height: 32px;
}

/* Frame 2147239062：进度条与输入卡为层叠结构——白卡上移 20px 盖住灰条底部（灰条 56/110 高，
   可见 36/90），文字 9px 顶对齐后在可见区内垂直居中；白卡圆角在灰条上形成切口 */

.q4oJd {
    display: flex;
    flex-direction: column;
    width: min(var(--agent-card-width), calc(100% - 32px));
    margin: 0 auto;
    padding: 0;
    box-sizing: border-box;
}

/* 四角圆角：上方两角在灰底上形成接缝圆弧，下方两角与 .taskComposerGroup 的裁切重合；
   横向内边距与 .emptyComposer .composer 对齐，保证两处上传按钮离卡片左边缘距离一致；
   Frame 2147239062：白卡 radius 16 + 浅边框 + 阴影，独立于进度条 */

.q4oJd .TZLKN {
    padding: 10px 14px 12px;
    border: 1px solid rgba(233, 236, 243, .7);
    border-radius: 16px;
    box-shadow: 0 4px 10px rgba(191, 196, 217, .16);
}

.q4oJd .TZLKN:focus-within {
    border-color: #3855d5;
    box-shadow: 0 0 0 2px rgba(56, 85, 213, .15);
}

/* 会话态卡高 106 含 2px 边框（10+43+7+32+12+2）；文字 16/24、占位 #9296A6 按会话态帧；
   空态 textarea 62 的规则不受影响 */

.q4oJd .TZLKN textarea {
    min-height: 43px;
    font-size: 16px;
    line-height: 24px;
}

.q4oJd .TZLKN textarea::placeholder {
    color: #9296a6;
}

.q4oJd .R18KW {
    width: 32px;
    height: 32px;
}

/* 上边距清零：库的 `&-anchor + &-list:not(&-list-image)` 给列表 8px，会把附件行顶到
   距卡片上沿 20px（要求 12px）；带 :not 是与之同特异性（0,3,0），否则被库规则压过。
   行宽跟随内容——库固定 264px，短文件名时删除按钮被顶到 264px 处、右侧留大片空白，
   max-width 兜住超长文件名（由 label 自身 ellipsis 截断，不溢出卡片） */

.rUzIY [class*=one-uploader-list]:not([class*=one-uploader-list-image]) {
    margin-top: 0;
    width: -moz-fit-content;
    width: fit-content;
    max-width: 100%;
}

/* 附件行：定高 32 + flex 居中——行内容 21px（删除按钮行高），靠 padding 撑会让内容下移；
   定高顺带消除「上传中→成功」的高度跳动。用 [class~=] 精确匹配行根节点，
   避免命中 *-container/-label 等同前缀子元素 */

.rUzIY [class~="one-uploader-file-item"] {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    height: 32px;

    /* 行下边距 4：下方正文行盒自带 4px 半行距，合计与行上方间距相当 */
    margin-bottom: 4px;
    padding: 0 4px;
    border-radius: 8px;
}

/* 圆角落在行自身，hover 底色才不呈直角 */

.rUzIY [class~="one-uploader-file-item"]:hover {
    background: #f6f8f9;
}

/* 图标→文件名、文件名→删除按钮均为 10（库默认 4，以及 8 与删除按钮自身 8 的叠加） */

.rUzIY [class*=one-uploader-file-item-label] {
    margin-left: 10px;
    margin-right: 10px;
}

.rUzIY [class*=one-uploader-file-item-control] {
    margin-left: 0;
}

/* picker 按钮脱流定位到卡片左下角，与 composerToolbar 右侧的发送按钮保持同一行；
   必须用 > 只命中 anchor 根节点，否则内层的 *-file-container 也会被绝对定位 */

.rUzIY > [class*=one-uploader-anchor] {
    position: absolute;
    left: 12px;
    bottom: 9px;
}

/* 设计稿：上传入口是无底色的「上传文件」文字按钮，去掉 one-ui one-button-normal 的
   浅灰底（#f6f7fa）、内边距与 hover 态底色；图标与文案间距由 one-button 自身提供 */

.rUzIY [class*=one-uploader-anchor-file-button] {
    padding: 0;
    border-color: transparent;
    background: transparent;
}

.rUzIY [class*=one-uploader-anchor-file-button]:hover:not(:disabled) {
    background: transparent;
}

@media (max-width: 1100px) {
    .ScLog,
    .q4oJd {
        width: calc(100% - 56px);
    }
}

@media (max-width: 820px) {
    .ScLog {
        width: calc(100% - 32px);
        padding-bottom: 12px;
    }

    .q4oJd {
        width: calc(100% - 32px);
        margin-bottom: 12px;
    }

    .BGwsj {
        margin-top: 24px;
    }
}

/* EmptyConversation 组件样式（自 index.module.css 原文迁出，规则未改写） */
.Y2dhO {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: min(var(--agent-card-width), 100%);
    margin: 0 auto;
    padding: 110px 0 32px;
    text-align: left;
}
.Y2dhO h1 {
    margin: 0 0 14px;
    color: #080807;
    font-size: 30px;
    font-weight: 500;
    line-height: 42px;
    letter-spacing: .04em;
}
.Y2dhO > p {
    max-width: 570px;
    margin: 0;
    color: #5a5c66;
    font-size: 18px;
    line-height: 24px;
}
.qS55U {
    margin-top: 50px;
    color: #5a5c66;
    font-size: 14px;
    line-height: 14px;
}
.n5MaL {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    width: 100%;
    margin-top: 22px;
}
.n5MaL button {
    border: 0;
    font: inherit;
    cursor: pointer;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    min-height: 106px;
    padding: 16px;
    border-radius: 12px;
    color: #5a5c66;
    background: #fff;
    text-align: left;
    font-size: 12px;
    transition: box-shadow .2s ease;
}
.n5MaL button:hover {
    box-shadow: inset 0 0 0 1px #bbcdfc;
}
.C7KQm {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 26px;
    height: 26px;
}
.tgqqS {
    display: flex;
    align-items: center;
}
.tgqqS strong {
    margin-left: 12px;
    color: #242529;
    font-size: 14px;
    font-weight: 400;
    line-height: 14px;
}
.j5UNy {
    display: -webkit-box;
    overflow: hidden;
    color: #5a5c66;
    font-size: 12px;
    line-height: 18px;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
@media (max-width: 820px) {
    .Y2dhO {
        padding-top: 40px;
    }

    .Y2dhO h1 {
        font-size: 24px;
        line-height: 34px;
    }

    .n5MaL {
        grid-template-columns: 1fr;
    }
}

/* HistorySidebar 组件样式（自 index.module.css 原文迁出，规则未改写）。
   按钮基线 reset 与 svg 尺寸原为跨组件共享规则，此处仅保留本组件用到的选择器 */
.lU2RL,
.g0MeP,
.ks_tf {
    border: 0;
    font: inherit;
    cursor: pointer;
}
.lU2RL {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 40px;
    margin: 0 8px;
    box-sizing: border-box;
    border: 1px solid #3855d5;
    border-radius: 8px;
    color: #3855d5;
    background: #f0f5ff;
    font-size: 14px;
    font-weight: 500;
    transition: background .2s ease;
}
/* 原与 primaryButton/sendButton:hover 同组规则，按文件拆分复制 */
.lU2RL:hover {
    background: #0054e6;
    color: #fff;
}
.lU2RL svg,
.g0MeP svg {
    width: 16px;
    height: 16px;
}
.Pz5u8 {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 17px 8px 16px;
    box-sizing: border-box;
    min-height: 0;
    border-radius: 14px;
    background: #fff;
}
.YDvND {
    display: flex;
    align-items: center;
    gap: 4px;
    height: 36px;
    margin-bottom: 8px;
    padding: 0 12px;
    box-sizing: border-box;
    border: 1px solid #eaecf3;
    border-radius: 8px;
    color: #9296a6;
    background: #fff;
}
.YDvND:focus-within {
    border-color: #196eef;
    box-shadow: 0 0 0 2px #e3edff;
}
.YDvND > svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}
.YDvND input {
    min-width: 0;
    flex: 1;
    border: 0;
    outline: 0;
    color: #282c33;
    background: transparent;
    font-size: 14px;
}
.YDvND input::placeholder {
    color: #9296a6;
}
.g0MeP {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    padding: 0;
    color: #a8b0bf;
    background: transparent;
}
.g0MeP svg {
    width: 13px;
    height: 13px;
}
/* 原与 backButton/iconButton/closeDrawerButton:hover 同组规则，按文件拆分复制 */
.g0MeP:hover {
    background: #f6f7fa;
}
.ytl1i {
    margin: 24px 12px 12px;
    color: #9296a6;
    font-size: 12px;
    line-height: 12px;
}
.dyL60 {
    min-height: 0;
    flex: 1;
    overflow-y: auto;
}
.ks_tf {
    display: block;
    width: 100%;
    margin-bottom: 4px;
    padding: 12px;
    box-sizing: border-box;
    border-radius: 8px;
    text-align: left;
    color: #5a5c66;
    background: transparent;
}
.ks_tf:hover,
.GYg7J {
    background: #f2f7ff;
}
.GYg7J .wcyqe {
    color: #242529;
}
.wcyqe,
.QUUqk {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.wcyqe {
    font-size: 14px;
    line-height: 14px;
}
.QUUqk {
    display: flex;
    justify-content: space-between;
    gap: 7px;
    margin-top: 8px;
    color: #9296a6;
    font-size: 12px;
    line-height: 12px;
}
.QUUqk span {
    overflow: hidden;
    text-overflow: ellipsis;
}
.QUUqk time {
    flex-shrink: 0;
}
.mp168 {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 48px 8px;
    color: #a8b0bf;
    font-size: 12px;
}
.mp168 svg {
    width: 24px;
    height: 24px;
}
.KrPiO {
    display: none;
    padding: 14px 8px 0;
    color: #b4bac6;
    font-size: 11px;
    line-height: 16px;
}
.eETqU {
    padding: 10px 0 4px;
    color: #9296a6;
    font-size: 12px;
    line-height: 18px;
    text-align: center;
}
@media (max-width: 820px) {
    .Pz5u8 {
        height: auto;
        padding: 10px 14px;
        border: 1px solid #e4eaf5;
    }

    .lU2RL {
        position: absolute;
        top: 13px;
        right: 14px;
        width: auto;
        padding: 0 10px;
    }

    .YDvND,
    .ytl1i,
    .dyL60,
    .KrPiO {
        display: none;
    }
}

/* FeedbackActions 组件样式（自 index.module.css 原文迁出，规则未改写）。
   iconButton 与 iconButton:hover 的共享 hover 底色规则按本组件生效范围复制 */
.u_CQL {
    display: flex;
    justify-content: flex-end;

    /* 设计稿组合 44 = 图标14 + 间距16 + 图标14；按钮盒比图标宽 (26-14)/2=6/侧，
       盒间距 4 → 图标视觉间距 6+4+6=16 */
    gap: 4px;
    margin-top: 5px;
}
.EJaMF {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    padding: 0;
    border-radius: 4px;
    color: #9296a6;
    background: transparent;
}
/* 图标按设计稿 14×14（dls 默认 1em 会继承字号 12） */
.EJaMF svg {
    display: block;
    width: 14px;
    height: 14px;
}
/* 共享 hover 色/底规则（原与 backButton/closeDrawerButton/clearSearchButton 同组，按文件拆分复制） */
.EJaMF:hover {
    color: #3855d5;
    background: #f6f7fa;
}
.l_kh2 {
    color: #3855d5;
}
.u_CQL .EJaMF:last-child:hover {
    color: #d66a00;
}
.EJaMF:disabled {
    cursor: not-allowed;
    opacity: .55;
}

/* Brief 卡片骨架样式（自 index.module.css 原文迁出，规则未改写）。
   BriefFormCard / BriefConfirmCard / BriefCardSnapshot 共用本模块；
   messageStatus/cardActions/primaryButton/secondaryButton 为卡片簇共享基类副本
   （与 ComplianceCard/ProcessCard 等模块同文维护） */
.qEJg_ {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    width: -moz-fit-content;
    width: fit-content;
    max-width: 100%;
    margin-bottom: 20px;
    color: #3855d5;
    font-size: 14px;
    line-height: 14px;
}
.gbsAK,
.T09ao {
    display: flex;
    align-items: center;
}
.E9As3,
.qOzMC {
    border: 0;
    font: inherit;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-height: 32px;
    padding: 0 13px;
    border-radius: 4px;
    font-size: 12px;
    line-height: 18px;
}
.E9As3 {
    color: #fff;
    background: #196eef;
}
.E9As3 svg,
.qOzMC svg {
    width: 16px;
    height: 16px;
}
/* 原与 newSessionButton/sendButton:hover 同组规则，按文件拆分复制 */
.E9As3:hover {
    background: #0054e6;
}
.qOzMC {
    border: 1px solid #d7dce7;
    color: #545b66;
    background: #fff;
    line-height: 16px;
}
.qOzMC:hover {
    border-color: #8bb4ff;
    color: #196eef;
    background: #f2f7ff;
}
.E9As3:disabled,
.qOzMC:disabled {
    cursor: not-allowed;
    opacity: .55;
}
.T09ao {
    justify-content: space-between;
    gap: 8px;
    margin-top: 18px;
}
.zBvqS {
    display: flex;
    align-items: center;
    gap: 8px;
}
/* Frame 2147239062：卡片内边距 16px、圆角 10px、无边框，按钮行距字段列表 24px */
.YjgN3 {
    width: min(var(--agent-card-width), 100%);
    box-sizing: border-box;
    border: none;
    border-radius: 10px;
    background: #fff;
    padding: 16px;
}
.YjgN3 .gbsAK {
    gap: 6px;
}
/* Frame 2147239163：按钮行距字段列表 12px、底部对齐；表单卡另用 briefFormActions 放宽到 24px */
.YjgN3 .T09ao {
    margin-top: 12px;
    align-items: flex-end;
}
.YjgN3 .INVV_ {
    margin-top: 24px;
}
.gbsAK {
    justify-content: space-between;
    gap: 16px;
}
button.gbsAK {
    width: 100%;
    padding: 0;
    border: none;
    background: transparent;
    color: inherit;
    cursor: pointer;
    text-align: left;
}
.OUl7Q {
    color: #3855d5;
    font-size: 18px;
    flex-shrink: 0;
}
.dUkYs {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    margin-left: auto;
    border-radius: 4px;
    color: #8993ad;
    font-size: 16px;
    line-height: 1;
    transition: background-color .15s ease, color .15s ease;
}
button.gbsAK:hover .dUkYs {
    color: #282c33;
    background: #f2f4f8;
}
.QU9nH {
    height: 1px;
    margin: 20px 0 12px;
    background: rgba(191, 196, 217, .3);
}
.dKBOZ {
    flex-shrink: 0;
    width: 56px;
    box-sizing: border-box;
    padding: 4px;
    border-radius: 4px;
    background: #f0f5ff;
    color: #3855d5;
    font-size: 12px;
    font-weight: 500;
    line-height: 12px;
    text-align: center;
    white-space: nowrap;
}
.xoEnd {
    display: flex;
    min-height: 38px;
    align-items: center;
    gap: 8px;
    margin: 0 0 4px;
}
.C_s7r {
    flex: 1;
    min-width: 0;
    color: #242529;
    font-size: 14px;
    line-height: 22px;
    word-break: break-word;
}
.gbsAK h3 {
    margin: 0;
    color: #242529;
    font-size: 14px;
    font-weight: 400;
    line-height: 22px;
}
/* Frame 2147239062：165×32、6px 圆角、5 色标 271.88deg 渐变，字号沿用通用的 12px */
.YjgN3 .E9As3 {
    min-width: 165px;
    box-sizing: border-box;
    border-radius: 6px;
    background: linear-gradient(271.88deg, #8b58fd -30.62%, #754bff 1.64%, #4e6ef2 33.9%, #3a7bff 66.15%, #4e99f2 98.41%);
}
.YjgN3 .E9As3:hover:not(:disabled) {
    opacity: .92;
}
.YjgN3 .qOzMC {
    min-width: 88px;
    box-sizing: border-box;
    border-color: rgba(233, 236, 243, .7);
    color: #242529;
}
/* 提交后操作行仅剩反馈图标：靠右、距最后字段 14（26 按钮盒内 14px 图标居中，视觉距 20） */
.ZRJ10 {
    justify-content: flex-end;
}
.YjgN3 .ZRJ10 {
    margin-top: 14px;
}
/* 原 .cardActionsEnd .feedbackActions 规则：feedbackActions 类已随 FeedbackActions 拆分到
   独立 module，跨 module 后代选择器不可用，改为调用方传入本类的等价覆盖（高特异性防顺位） */
.ZRJ10 .mA0Yv {
    margin-top: 0;
}
@media (max-width: 820px) {
    .T09ao {
        flex-wrap: wrap;
    }
}

/* Brief 表单字段簇样式（自 index.module.css 原文迁出，规则未改写）。
   BriefFormCard / BriefConfirmCard 共用；formOptionTagActive 由调用方按提交态切换 */
.iQ86a {
    margin-top: 0;
    padding: 0;
}
.JM_ta {
    padding: 0 0 24px;
}
.JM_ta:last-child {
    padding-bottom: 0;
}
.cSD4B {
    margin: 0 0 20px;
    color: #242529;
    font-size: 14px;
    line-height: 22px;
}
.Plqb0 {
    height: 1px;
    margin: 0 0 20px;
    background: rgba(191, 196, 217, .3);
}
.IMX8J {
    display: block;
    margin-bottom: 20px;
}
.P2UEo {
    display: none;
}
.oh1Ry {
    color: #242529;
    font-weight: 500;
    font-size: 16px;
    line-height: 26px;
}
.uh6aF {
    margin-left: 3px;
    color: #d94841;
}
.M9YkI {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}
.SsLWo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    box-sizing: border-box;
    padding: 0 16px;
    border: 1px solid #d5d6d9;
    border-radius: 6px;
    color: #5a5c66;
    background: #f6f8f9;
    font: inherit;
    font-weight: 500;
    font-size: 14px;
    line-height: 14px;
    cursor: pointer;
    transition: border-color .2s ease, color .2s ease, background-color .2s ease;
}
.SsLWo:hover:not(:disabled) {
    border-color: #8ba4f0;
    color: #3855d5;
    background: #f0f5ff;
}
/* 选中态：1.5px 描边用 1px 边框 + 0.5px 内阴影叠加实现（绘制层，不参与布局）——
   padding/边框宽度在两种状态完全一致，任何缩放/DPI 下外宽与文字位置都不会变化 */
.EuUSL {
    border-color: #8ba4f0;
    box-shadow: inset 0 0 0 .5px #8ba4f0;
    color: #3855d5;
    background: #f0f5ff;
    font-weight: 500;
}
/* Frame 2147239062：禁用（已提交/处理中）保持全彩不变化 */
.SsLWo:disabled {
    cursor: default;
}
.L4RY4 {
    display: none;
    margin-top: 8px;
    margin-bottom: 12px;
    color: #848b99;
    font-size: 13px;
    line-height: 20px;
}
.XfkX_ {
    position: relative;
}
/* 外框（1px #3855D5、radius 8）与上下内边距放在包裹层，内层是「文本域 + 计数行」两段：
   滚动区正好是整数行（24×3），超出 3 行时底边不会露出半行；计数行独立占位，
   正文最后一行不会压到它下面。
   :has 限定有输入框的态（只读回显是 div，不要外框） */
.XfkX_:has(.jGLwI) {
    display: flex;
    flex-direction: column;
    padding: 10px 0;
    border: 1px solid #3855d5;
    border-radius: 8px;
    background: #fff;
}
/* 高度随内容自增（BriefTextArea 按 scrollHeight 写 height），上限 3 行 72，
   超出转为滚动且不绘制滚动条 */
.jGLwI {
    display: block;
    width: 100%;
    min-height: 24px;
    max-height: 72px;
    overflow-y: auto;
    padding: 0 16px;
    border: 0;
    outline: 0;
    color: #282c33;
    background: transparent;
    font: inherit;
    font-size: 14px;
    line-height: 24px;
    box-sizing: border-box;
    resize: none;
    scrollbar-width: none;
}
.jGLwI::-webkit-scrollbar {
    display: none;
}
/* 聚焦光圈挂外框（边框常态即 #3855D5，只有光圈变化） */
.XfkX_:has(.jGLwI:focus) {
    box-shadow: 0 0 0 2px rgba(56, 85, 213, .15);
}
.jGLwI::placeholder {
    color: #bfc4d9;
}
/* 计数独占一行、贴右下，与正文行距留 4px */
.Wqyev {
    align-self: flex-end;
    margin: 4px 16px 0;
    color: #bfc4d9;
    font-size: 14px;
    line-height: 20px;
    pointer-events: none;
}
/* Frame 2147239062：提交后文本字段只读回显（灰底无边框、无计数） */
.lXxxb {
    min-height: 46px;
    box-sizing: border-box;
    padding: 10px 16px;
    border-radius: 8px;
    color: #5a5c66;
    background: #f6f8f9;
    font-size: 14px;
    line-height: 22px;
    white-space: pre-wrap;
    word-break: break-word;
}

/* ComplianceCard 组件样式（自 index.module.css 原文迁出，规则未改写）。
   messageStatus/cardActions/primaryButton/cardTitleRow 为卡片簇共享基类副本（同文维护）；
   loadingDot 与原 .thinkingDots 同组规则，thinkingDots 已无消费者随拆分移除 */
.WJcjj {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    width: -moz-fit-content;
    width: fit-content;
    max-width: 100%;
    margin-bottom: 20px;
    color: #3855d5;
    font-size: 14px;
    line-height: 14px;
}
.u68p_ {
    border: 0;
    font: inherit;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-height: 32px;
    padding: 0 13px;
    border-radius: 4px;
    color: #fff;
    background: #196eef;
    font-size: 12px;
    line-height: 18px;
}
.u68p_:hover {
    background: #0054e6;
}
.u68p_:disabled {
    cursor: not-allowed;
    opacity: .55;
}
.ztGsI {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: 18px;
}
.c_v7C {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.uCKlm {
    color: #196eef;
    font-size: 12px;
    line-height: 18px;
}
.c_v7C h3 {
    margin: 0;
    color: #242529;
    font-size: 14px;
    font-weight: 400;
    line-height: 22px;
}
.fEty2 {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    margin-left: 6px;
}
.fEty2 i {
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: #196eef;
    animation: KMz0V 1.1s infinite ease-in-out;
}
.fEty2 i:nth-child(2) {
    animation-delay: .15s;
}
.fEty2 i:nth-child(3) {
    animation-delay: .3s;
}
@keyframes KMz0V {
    0%,
    60%,
    100% {
        opacity: .35;
        transform: translateY(0);
    }

    30% {
        opacity: 1;
        transform: translateY(-2px);
    }
}
/* 合规风险卡片：内边距 16px、圆角 10px、无边框 */
.vIIQj {
    width: min(var(--agent-card-width), 100%);
    box-sizing: border-box;
    border: none;
    border-radius: 10px;
    background: #fff;
    padding: 16px;
}
.cDcYP {
    border-left: 3px solid #e69800;
}
.uYIu2 {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #0e8c62;
    font-size: 14px;
    font-weight: 500;
    line-height: 22px;
}
.uYIu2 svg {
    width: 16px;
    height: 16px;
}
.NcA_h {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 20px;
    color: #faad14;
    font-size: 14px;
    font-weight: 500;
    line-height: 22px;
}
.WdDR8 {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    color: #faad14;
}
.WdDR8 svg {
    width: 16px;
    height: 16px;
}
.l0JqX {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.hn9Pj {
    display: flex;
    gap: 8px;
    padding: 8px;
    border-radius: 8px;
    background: #f7f9fd;
}
.ytQfd {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 4px;
    color: #faad14;
    background: #fff8ce;
    font-family: var(--dls-font-family-number);
    font-size: 16px;
    font-weight: 500;
    line-height: 16px;
}
.hn9Pj strong {
    display: block;
    color: #242529;
    font-size: 14px;
    font-weight: 500;
    line-height: 22px;
}
.hn9Pj p {
    margin: 4px 0 0;
    color: #9296a6;
    font-size: 14px;
    line-height: 22px;
}
.Jezmm {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 22px;
}
.Jezmm span {
    display: block;
    height: 12px;
    border-radius: 6px;
    background: #f0f2f5;
    animation: TOPQW 1.4s infinite ease-in-out;
}
.Jezmm span:nth-child(2) {
    width: 78%;
}
.Jezmm span:nth-child(3) {
    width: 52%;
}
@keyframes TOPQW {
    0%,
    100% {
        opacity: .45;
    }

    50% {
        opacity: 1;
    }
}
/* 合规风险卡片：按钮行距列表 20px、底部对齐；按钮沿用 165×32、6px 圆角、271.88deg 渐变 */
.vIIQj .ztGsI {
    margin-top: 20px;
    align-items: flex-end;
}
.vIIQj .u68p_ {
    min-width: 165px;
    box-sizing: border-box;
    border-radius: 6px;
    background: linear-gradient(271.88deg, #8b58fd -30.62%, #754bff 1.64%, #4e6ef2 33.9%, #3a7bff 66.15%, #4e99f2 98.41%);
    font-weight: 500;
}
.vIIQj .u68p_:hover:not(:disabled) {
    opacity: .92;
}
@media (max-width: 820px) {
    .ztGsI {
        flex-wrap: wrap;
    }
}

/* ProcessCard 组件样式（自 index.module.css 原文迁出，规则未改写）。
   messageStatus/cardActions 为卡片簇共享基类，processSpinner 与 keyframes 与页面加载态共用
   （各文件同文副本，修改时同步维护）；processNode 状态变体经显式映射使用，须同文件 */
.SmrAW {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    width: -moz-fit-content;
    width: fit-content;
    max-width: 100%;
    margin-bottom: 20px;
    color: #3855d5;
    font-size: 14px;
    line-height: 14px;
}
.ndR4U {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: 18px;
}
.JbcCE {
    width: min(var(--agent-card-width), 100%);
    box-sizing: border-box;
    border: 1px solid #e2e6f0;
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
}
.tWs5B {
    border: 0;
    font: inherit;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    width: 100%;
    padding: 15px 18px;
    color: #282c33;
    background: #fff;
    text-align: left;
    font-size: 14px;
}
.tWs5B svg {
    width: 16px;
    height: 16px;
}
.ee_Vm {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
}
.WIeJR {
    width: 16px;
    height: 16px;
    color: #24a968;
}
.D4XMa {
    color: #848b99;
}
.D4XMa svg {
    width: 16px;
    height: 16px;
}
.w6aWx {
    padding: 0 18px 16px;
    border-top: 1px solid #f0f2f5;
}
._K6MC {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding-top: 15px;
}
.O5ZG2 {
    z-index: 1;
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border: 1px solid #d7dce7;
    border-radius: 50%;
    color: #a8b0bf;
    background: #fff;
    font-size: 11px;
}
.O5ZG2 svg {
    width: 13px;
    height: 13px;
}
.MBLqA {
    border-color: #24a968;
    color: #fff;
    background: #24a968;
}
.MzEVf {
    border-color: #196eef;
    color: #196eef;
    background: #e3edff;
}
.Ea_zk {
    border-color: #d9150b;
    color: #d9150b;
    background: #fff2f2;
}
.bHvmI {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.bHvmI strong {
    font-size: 13px;
    font-weight: 500;
    line-height: 20px;
}
.bHvmI span {
    color: #848b99;
    font-size: 12px;
    line-height: 18px;
}
.lx9WQ {
    position: absolute;
    top: 37px;
    bottom: -14px;
    left: 10px;
    width: 1px;
    background: #e2e6f0;
}
.QCh4m {
    display: inline-block;
    width: 13px;
    height: 13px;
    border: 2px solid #d7e4ff;
    border-top-color: #196eef;
    border-radius: 50%;
    animation: zW9xA .8s linear infinite;
}
@keyframes zW9xA {
    to {
        transform: rotate(360deg);
    }
}
@media (max-width: 820px) {
    .ndR4U {
        flex-wrap: wrap;
    }
}

/* 推荐达人区块样式（自 index.module.css 原文迁出，规则未改写）。
   recommendationSection/Grid/Header 等区块类由 MessageRenderer 渲染，recommendationCard/
   talentIdentity/matchScore 由 RecommendationCard 渲染——同一视觉单元故共居一个 module；
   cardActions 为卡片簇共享基类副本（各卡片模块同文维护） */
.tEXdQ {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: 18px;
}
/* 推荐达人卡片：内边距 16px、圆角 10px、无边框 */
.zcGtx {
    width: min(var(--agent-card-width), 100%);
    box-sizing: border-box;
    border: none;
    border-radius: 10px;
    background: #fff;
    padding: 16px;
}
.Sl4NO {
    margin: 0;
    color: #242529;
    font-size: 14px;
    line-height: 22px;
}
.uVidw {
    height: 1px;
    margin: 20px 0;
    background: rgba(191, 196, 217, .3);
}
.WuNY6 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.TWHGv {
    display: flex;
    align-items: center;
    gap: 12px;
}
.brdDt {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    color: #3855d5;
    background: rgba(25, 144, 254, .1);
    border-radius: 8px;
}
.brdDt svg {
    width: 20px;
    height: 20px;
}
.TWHGv h3 {
    margin: 0;
    color: #242529;
    font-size: 14px;
    font-weight: 500;
    line-height: 14px;
}
.jioro {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
    color: #9296a6;
    font-size: 12px;
    line-height: 12px;
}
/* 收藏后追加在匹配总数后的已收藏数（设计稿：同行蓝色强调） */
.GgYsl {
    color: #3855d5;
}
.LoSii {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-width: 165px;
    min-height: 32px;
    color: #fff;
    font-size: 12px;
    font-weight: 500;
    line-height: 12px;
    background: linear-gradient(271.88deg, #8b58fd -30.62%, #754bff 1.64%, #4e6ef2 33.9%, #3a7bff 66.15%, #4e99f2 98.41%);
    border: none;
    border-radius: 6px;
    cursor: pointer;
}
.LoSii:hover {
    opacity: .92;
}
.wAM94 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 20px;
}
.zrJe4 {
    min-width: 0;
    padding: 16px;
    background: #f6f8f9;
    border: none;
    border-radius: 8px;
    transition: background-color .2s ease;
}
.zrJe4:hover {
    background: #edf0f5;
}
.skh36 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}
.vonva {
    display: flex;
    min-width: 0;
    flex-direction: row;
    gap: 9px;
    padding: 0;
    color: #282c33;
    background: transparent;
    text-align: left;
    border: 0;
    font: inherit;
    cursor: pointer;
}
.vonva > span {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 2px;
}
.vonva strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
    font-weight: 500;
    line-height: 19px;
}
.vonva small {
    overflow: hidden;
    color: #848b99;
    font-size: 11px;
    line-height: 16px;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.CpCAR {
    flex-shrink: 0;
    object-fit: cover;
    border-radius: 50%;
    background: #e3edff;
    width: 36px;
    height: 36px;
}
.vVw31 {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #8bb4ff;
    background: #eef3ff;
}
.vVw31 svg {
    width: 60%;
    height: 60%;
}
.pNlqw {
    flex-shrink: 0;
    align-self: flex-start;
    padding: 4px 12px;
    color: #3855d5;
    font-size: 12px;
    font-weight: 500;
    line-height: 16px;
    background: rgba(187, 205, 252, .32);
    border-radius: 4px;
}
/* 推荐卡（作用域限定，抽屉的 drawerTalentIdentity 不受影响）：头像 36、与文字间距 14；
   名字 14/22、粉丝 12/18、两行间距 4；头像在文字列（22+4+18=44）里上下居中 */
.zrJe4 .vonva {
    align-items: center;
    gap: 14px;
    color: #242529;
}
.zrJe4 .vonva > span {
    gap: 4px;
}
.zrJe4 .vonva strong {
    font-size: 14px;
    line-height: 22px;
}
.zrJe4 .vonva small {
    color: #5a5c66;
    font-size: 12px;
    line-height: 18px;
}
/* 按钮行距栅格 20、底部对齐 */
.zcGtx .tEXdQ {
    margin-top: 20px;
    align-items: flex-end;
}
@media (max-width: 820px) {
    .wAM94 {
        grid-template-columns: 1fr;
    }

    .tEXdQ {
        flex-wrap: wrap;
    }
}

/* MessageRenderer 组件样式（自 index.module.css 原文迁出，规则未改写）。
   消息行/气泡/附件；推荐区块与各卡片类分别在 RecommendationCard/BriefCards 等模块 */
.TryGa,
.rUirK {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    width: 100%;
    margin-bottom: 16px;
}
.lVoJ8 {
    justify-content: flex-end;
}
.nCzoV {
    min-width: 0;
    max-width: var(--agent-card-width);
    flex: 1 1 auto;
}
.lVoJ8 .nCzoV {
    max-width: 660px;
    flex: 0 1 auto;
}
.PJxw3 {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    width: -moz-fit-content;
    width: fit-content;
    max-width: 100%;
    margin-bottom: 20px;
    color: #3855d5;
    font-size: 14px;
    line-height: 14px;
}
.DJ0ai {
    display: inline-block;
    width: -moz-fit-content;
    width: fit-content;
    max-width: 100%;
    box-sizing: border-box;
    padding: 11px 14px;
    border: 1px solid transparent;
    border-radius: 4px 12px 12px 12px;
    color: #282c33;
    background: #fff;
    font-size: 14px;
    line-height: 22px;
    white-space: pre-wrap;
    word-break: break-word;
}
/* Frame 2147239062：四角 12px、内边距 16px、文字 #12215C
   靠右：附件 chip 会把 messageContent 撑得比气泡宽，inline-block 的气泡会贴左，
   改为块级 + fit-content + margin-left:auto 才能始终贴右侧 */
.I2knz {
    display: block;
    width: -moz-fit-content;
    width: fit-content;
    margin-left: auto;
    padding: 16px;
    border-color: transparent;
    border-radius: 12px;
    color: #12215c;
    background: #e5e7f7;
}
/* 设计稿：附件 chip 排在消息气泡上方、右对齐；无底色无边框，只保留回形针 + 文件名
   （文件大小在设计稿中不展示，改为仅在输入框侧的上传态体现） */
.TDCKC {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 4px;
    margin-bottom: 6px;
}
.QCfKb {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    max-width: 260px;
    color: #282c33;
    font-size: 14px;
    line-height: 22px;
}
.QCfKb > svg {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    color: #9296a6;
}
.QCfKb > span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* RecommendationDrawer 组件样式（自 index.module.css 原文迁出，规则未改写）。
   one-ui Table 覆写走 :global（.drawerTable 作用域）；.drawerBody .pager 因 Pager 拆分独立
   module 改为 drawerPager 类等价承载（align-self 应用在 Pager 根节点上，视觉不变） */
.Itkq4 {
    position: fixed;

    /* 应用标准抽屉层级（variables.css：toast 1200 之上留白），配合 Portal 生效 */
    z-index: var(--drawer-z-index);
    inset: 0;
}
.MYv4s {
    border: 0;
    font: inherit;
    cursor: pointer;
    position: absolute;
    inset: 0;
    padding: 0;
    background: rgba(40, 44, 51, .28);
}
.JdO3m {
    position: absolute;
    top: 0;
    right: 0;
    display: flex;
    width: min(980px, 92vw);
    height: 100%;
    flex-direction: column;
    background: #fff;
    box-shadow: -8px 0 22px rgba(191, 196, 217, .2);
}
/* 设计稿 Frame 2147223908：头部 24/24/16、标题 16/500 与 16 关闭图标同行，下接 12px 副标题 */
.UuOci {
    flex: none;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
    padding: 24px 24px 16px;
}
.bl0mb {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.UuOci h2 {
    margin: 0;
    color: #242529;
    font-size: 16px;
    font-weight: 500;
    line-height: 26px;
}
.NbAoH {
    margin: 0;
    color: #9296a6;
    font-size: 12px;
    line-height: 18px;
}
.SiAe1 {
    border: 0;
    font: inherit;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    padding: 0;
    border-radius: 4px;
    color: #9296a6;
    background: transparent;
}
.SiAe1 svg {
    width: 16px;
    height: 16px;
}
.SiAe1:hover {
    background: #f6f7fa;
}
/* 设计稿 Frame 2036085159/2147239142：主体 0 24 12、纵向间距 20；全选/导出名单 88×36 描边按钮 */
.j7mfE {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 0 24px 12px;
}
/* 工具栏靠右对齐（设计走查：批量操作/导出名单贴列表右上角，不再贴左） */
.l9fza {
    flex: none;
    display: flex;
    align-items: center;
    align-self: flex-end;
    gap: 20px;
}
.fnK1v {
    font: inherit;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 88px;
    height: 36px;
    padding: 5px 16px;
    border: 1px solid #d5d6d9;
    border-radius: 4px;
    color: #242529;
    background: #fff;
    font-size: 14px;
    line-height: 14px;
    white-space: nowrap;
}
.fnK1v:hover:not(:disabled) {
    background: #f7f8f9;
}
/* 导出请求进行中：置灰 + 禁点，防止重复导出 */
.fnK1v:disabled {
    color: #9296a6;
    cursor: not-allowed;
    opacity: .55;
}
/* one-ui Table 覆写（.drawerTable 作用域）：对齐设计稿 Frame 2147239135
   表头 54 高 #F7F8F9、行 62、分隔线 #E9ECF3；one-table 内部类走 :global（否则被 CSS Modules 哈希失效）。
   相关操作列是 sticky 实现（head/row-cell-sticky-right），整列 drop-shadow 用首列 ::before 渐变条模拟
   （设计稿 Frame 2147239132），并禁用组件自带的黑系 ::after 阴影 */
.dP4nT {
    flex: 1;
    min-height: 0;

    /* 只做纵向滚动：横向滚动交给 one-ui 内部的 .one-table-body（sticky 操作列与表头的
       横向联动依赖它）。这里若放开横向，表内容一旦比容器宽，外层会再叠一条无用的横向
       滚动条，并把 sticky 的操作列推出可视区（实测右侧被裁 28px） */
    overflow-x: hidden;
    overflow-y: auto;
}
/* 接口加载态/取页失败态（首屏、翻页且当前页无数据时替换表格区域） */
.n9t9Y,
.Q7x0v {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 200px;
    color: #9296a6;
    font-size: 14px;
}
/* 取页失败：错误文案 + 重试按钮（配色同页面的 errorNotice） */
.Q7x0v {
    gap: 12px;
}
.hWkjn {
    color: #b42318;
}
/* 表头容器默认 #EBEDF5，改设计稿 #F7F8F9 */
.dP4nT .one-table-header-container {
    background: #f7f8f9;
}
.dP4nT .one-table-thead > tr > th,
.dP4nT .one-table-thead > tr > th:hover {
    height: 54px;
    padding: 0 16px;
    background: #f7f8f9;
    color: #5a5c66;
    font-size: 14px;
    font-weight: 400;
    line-height: 14px;
}
.dP4nT .one-table-tbody > tr > td,
.dP4nT .one-table-tbody > tr:hover > td,
.dP4nT .one-table-tbody > tr.fnZBE > td {
    height: 62px;
    padding: 0 16px;
    background: #fff;
    border-bottom: 1px solid #e9ecf3;
}
/* 设计稿 Checkbox：16×16、1px #D5D6D9、圆角 4 */
.dP4nT .one-checkbox-inner {
    box-sizing: border-box;
    width: 16px;
    height: 16px;
    border: 1px solid #d5d6d9;
    border-radius: 4px;
}
/* 设计稿整列 drop-shadow(-3px 0 9px)：sticky 首列 ::before 渐变条等价模拟 */
.dP4nT .one-table-head-cell-sticky-right-first::before,
.dP4nT .one-table-row-body-cell-sticky-right-first::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: -12px;
    width: 12px;
    background: linear-gradient(to right, rgba(211, 215, 224, 0), rgba(211, 215, 224, .3));
    pointer-events: none;
}
/* 禁用组件默认黑系阴影（设计稿用浅灰蓝 #D3D7E0） */
.dP4nT .one-table-head-cell-sticky-right-first::after,
.dP4nT .one-table-row-body-cell-sticky-right-first::after {
    content: none;
}
.Y3Avw {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}
.Y3Avw strong {
    overflow: hidden;
    color: #242529;
    font-size: 14px;
    font-weight: 500;
    line-height: 14px;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.R4pFX {
    position: relative;
    display: block;
    padding-right: 24px;
    color: #5a5c66;
    font-size: 12px;
    line-height: 18px;
}
.f7UBo {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
/* 推荐理由截断时的 hover 全文气泡 */
.SYy0k {
    position: absolute;
    left: 0;
    top: calc(100% + 2px);
    z-index: 6;
    display: none;
    width: 360px;
    padding: 12px 16px;
    border-radius: 8px;
    color: #242529;
    background: #fff;
    font-size: 14px;
    line-height: 22px;
    box-shadow: 0 4px 16px rgba(40, 44, 51, .12);
}
.R4pFX:hover .SYy0k {
    display: block;
}
/* 相关操作列内双链接紧凑排列：固定 16px 间距（原交互图为两端撑开，已按需求收紧） */
.yPXve {
    display: flex;
    align-items: center;
    gap: 16px;
}
.idT4A {
    border: 0;
    font: inherit;
    cursor: pointer;
    flex: none;
    color: #3855d5;
    background: transparent;
    font-size: 14px;
    line-height: 14px;
}
.idT4A:disabled {
    color: #9296a6;
    cursor: not-allowed;
}
/* 设计稿 Frame 2147239118：匹配度胶囊徽章（44×20，rgba(25,144,254,.1) 底圆角 10）；
   min-width 替代固定宽——五位数值（如 118.4）时胶囊随内容微扩不截断 */
.aq7bh {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-width: 44px;
    height: 20px;
    padding: 4px 8px;
    color: #3855d5;
    font-size: 12px;
    font-weight: 500;
    line-height: 12px;
    background: rgba(25, 144, 254, .1);
    border-radius: 10px;
}
/* 报价数值（¥xx.x万起）一行展示，不在列内换行 */
.IYZk1 {
    white-space: nowrap;
}
.U5wUn {
    flex-shrink: 0;
    object-fit: cover;
    border-radius: 50%;
    background: #e3edff;
    width: 36px;
    height: 36px;
}
/* 原 .drawerBody .pager 规则的等价迁移：Pager 根节点接收 drawerPager 类（.pager 自身
   在 Pager.module.css），对齐抽屉底部右侧 */
.ebUA1 {
    align-self: flex-end;
}
/* 分页统一收敛 one-ui Pagination（:global 覆写对齐设计稿 @component<Pagination>：
   32×32 页码钮 1px #d5d6d9 边、选中 #F0F5FF/#3855D5、翻页钮 18 图标、禁用 opacity .4、
   jump-dot 省略号去按钮化）。复合选择器压过 one-ui 尺寸 mixin 的同特异性规则 */
.ebUA1 .one-pagination-pager {
    display: flex;
    align-items: center;
    gap: 8px;
}
.ebUA1 .one-pagination-pager .one-pagination-pager-item {
    box-sizing: border-box;
    width: 32px;
    height: 32px;
    margin: 0;
    padding: 0;
    border: 1px solid #d5d6d9;
    border-radius: 4px;
    color: #242529;
    background: #fff;
    font-size: 14px;
    line-height: 14px;
}
.ebUA1 .one-pagination-pager .one-pagination-pager-item svg {
    width: 18px;
    height: 18px;
}
.ebUA1 .one-pagination-pager .one-pagination-pager-item:disabled {
    cursor: not-allowed;
    opacity: .4;
}
.ebUA1 .one-pagination-pager .one-pagination-pager-item-active {
    border-color: #3855d5;
    color: #3855d5;
    background: #f0f5ff;
}
/* 省略号（jump-dot）去按钮化：呈现为惰性「…」文本 */
.ebUA1 .one-pagination-pager .one-pagination-pager-item-dot {
    border: 0;
    background: transparent;
    color: #9296a6;
}

/* StopTaskDialog 组件样式（自 index.module.css 原文迁出，规则未改写）。
   secondaryButton 基类为跨卡片共享类，此处按本弹窗生效范围复制（与各卡片模块同步维护） */
.NpE7y {
    position: fixed;
    z-index: 100;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
.IXJ0H {
    border: 0;
    font: inherit;
    cursor: pointer;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background: rgba(40, 44, 51, .35);
}
.K4UcE {
    position: relative;
    z-index: 1;
    width: min(416px, calc(100vw - 32px));
    box-sizing: border-box;
    padding: 20px 24px 18px;
    border-radius: 4px;
    background: #fff;
    box-shadow: 0 8px 28px rgba(40, 44, 51, .18);
}
.UlNCJ {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.UlNCJ h2 {
    margin: 0;
    color: #282c33;
    font-size: 16px;
    font-weight: 600;
    line-height: 24px;
}
.FNwcG {
    border: 0;
    font: inherit;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    padding: 0;
    border-radius: 4px;
    color: #848b99;
    background: transparent;
}
.FNwcG:hover:not(:disabled) {
    color: #545b66;
    background: #f6f7fa;
}
.FNwcG svg {
    width: 16px;
    height: 16px;
}
.K4UcE p {
    margin: 12px 0 20px;
    color: #545b66;
    font-size: 13px;
    line-height: 20px;
}
.Rb63J {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}
.otngP {
    border: 0;
    font: inherit;
    cursor: pointer;
    min-width: 64px;
    height: 32px;
    padding: 0 14px;
    border-radius: 4px;
    color: #fff;
    background: #e64545;
    font-size: 13px;
}
.otngP:hover:not(:disabled) {
    background: #c93636;
}
.otngP:disabled,
.FNwcG:disabled,
.IXJ0H:disabled {
    cursor: not-allowed;
    opacity: .6;
}
/* 次按钮基类副本（原 .secondaryButton 与 .detailButton:hover 同组规则按文件拆分） */
.bUFt3 {
    font: inherit;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-height: 32px;
    padding: 0 13px;
    border: 1px solid #d7dce7;
    border-radius: 4px;
    color: #545b66;
    background: #fff;
    font-size: 12px;
    line-height: 16px;
}
.bUFt3:hover {
    border-color: #8bb4ff;
    color: #196eef;
    background: #f2f7ff;
}
.bUFt3:disabled {
    cursor: not-allowed;
    opacity: .55;
}

/* TaskFlowBar 组件样式（自 index.module.css 原文迁出，规则未改写）。
   taskFlowStepIcon 状态变体经 styles[`taskFlowStepIcon${status}`] 动态拼接，
   必须与基础类同文件 */
.T89Xl {
    position: relative;
    z-index: 0;
    margin-bottom: -20px;
    padding: 8px 16px 28px;
    border: 1px solid rgba(233, 236, 243, .7);
    border-radius: 16px 16px 0 0;
    background: rgba(191, 196, 217, .14);
}
.tdmUY {
    border: 0;
    font: inherit;
    cursor: pointer;
    position: absolute;
    top: 9px;
    right: 16px;
    display: flex;
    height: 18px;
    align-items: center;
    padding: 0;
    color: #9296a6;
    background: transparent;
}
.tdmUY svg {
    width: 14px;
    height: 14px;
}
._yNqW {
    display: flex;
    flex-direction: column;
    gap: 9px;
    padding-right: 22px;
    background: transparent;
}
.s9E6S {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #5a5c66;
    font-size: 12px;
    line-height: 18px;
}
.Rp_Ic {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.K_JMO {
    margin-left: 4px;
}
/* 交互图里三步统一是空心圆环，只靠环色区分已到达（浅蓝）和未到达（浅灰），没有实心打勾态；
   环厚 2.5px 按新帧标注 */
.QbQdq {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    width: 12px;
    height: 12px;
    box-sizing: border-box;
    border: 2.5px solid #d5d6da;
    border-radius: 50%;
    background: transparent;
}
.OiVoC,
.HsK1O {
    border-color: #bbcdfc;
}
.S8y_I {
    border-color: #d5d6da;
}

/* SelfMatchAgent 页面壳样式（布局/背景/会话头/消息列表容器/思考气泡/错误条）。
   各组件样式已按归属拆分至 components/*.module.css；此处仅保留 index.tsx 直接渲染的节点。 */
:root {
    --agent-card-width: 780px;
}
#entry.ai-match-entry {
    /* Keep the desktop header wide enough for the Figma order: task -> AI match. */
    min-width: 1440px !important;
    width: 100% !important;
    background: #eef3fb;
}
#entry.ai-match-entry .bcm-main {
    min-height: calc(100vh - 57px);
}
#entry.ai-match-entry .bcm-content-wrapper {
    min-width: 0;
    min-height: calc(100vh - 57px);
    background: transparent;
}
#entry.ai-match-entry .bcm-content {
    min-width: 0 !important;
    width: 100%;
    padding: 0 !important;
    margin: 0;
    background: transparent;
}
#entry.ai-match-entry .bcm-footer {
    display: none;
}
.V8eZw {
    position: relative;
    display: grid;
    grid-template-columns: 236px minmax(0, 1fr);

    /* 定高锁住高度链（子项均已有 min-height: 0）：历史列表/消息列表真正内滚，
       输入框固定在视口底部；min-height 时容器被内容撑高，内滚失效退化为整页文档滚动 */
    height: calc(100vh - 57px);
    grid-template-rows: minmax(0, 1fr);
    box-sizing: border-box;
    padding: 12px 0 12px 24px;
    isolation: isolate;
    color: #282c33;
    font-family: PingFangSC, 'PingFang SC', Microsoft YaHei, sans-serif;
}
/* 设计稿背景：#F7F8F9 平色 + 顶部紫/蓝氛围光晕。Figma 的 blur 椭圆以 radial-gradient
   近似（扩散半径 = 椭圆半轴 + blur），白色高光垫在输入框下方；右上紫斑按 right 锚定
   以贴合宽屏。光晕只覆盖内容区，header 底色由 #entry 承接 */
.V8eZw::before {
    position: absolute;
    inset: 0;
    z-index: -1;
    content: '';
    pointer-events: none;
    background:
        radial-gradient(109px 65px at 635px 336px, rgba(255, 255, 255, .8), transparent 75%),
        radial-gradient(428px 269px at 1136px -301px, rgba(206, 114, 255, .15), transparent 75%),
        radial-gradient(174px 174px at right 17px top -195px, rgba(132, 56, 255, .25), transparent 75%),
        radial-gradient(671px 249px at 382px -246px, rgba(194, 213, 255, .46), transparent 75%),
        radial-gradient(294px 178px at 121px -169px, rgba(181, 234, 255, .41), transparent 75%),
        #f7f8f9;
}
.SzEuA {
    display: flex;
    min-width: 0;
    min-height: 0;
    flex-direction: column;
    background: transparent;
}
.vIG2U {
    display: none;
    align-items: center;
    justify-content: space-between;
    min-height: 64px;
    padding: 0 32px;
    border-bottom: 1px solid #ebedf5;
    background: rgba(255, 255, 255, .94);
}
.LBqBN,
.sbvae {
    display: flex;
    align-items: center;
}
.LBqBN {
    gap: 10px;
}
.pK48Q {
    border: 0;
    font: inherit;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    padding: 0;
    border-radius: 4px;
    color: #545b66;
    background: transparent;
}
/* 原与 iconButton/closeDrawerButton/clearSearchButton:hover 同组规则，按文件拆分复制 */
.pK48Q:hover {
    background: #f6f7fa;
}
.LBqBN h1 {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    line-height: 22px;
}
.LBqBN span {
    display: block;
    margin-top: 1px;
    color: #848b99;
    font-size: 11px;
    line-height: 16px;
}
.sbvae {
    gap: 16px;
}
.zMSHm {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 26px;
    padding: 0 9px;
    border-radius: 13px;
    color: #196eef;
    background: #e3edff;
    font-size: 12px;
}
.zMSHm i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
}
.IG3KM,
.YwLCp {
    color: #16854a;
    background: #e9f8ef;
}
.Hqyy4,
.XYhcF {
    color: #d66a00;
    background: #fff3df;
}
.C34xY {
    color: #848b99;
    background: #f0f2f5;
}
.tfKMu {
    color: #848b99;
    background: #f0f2f5;
}
.j2J6n {
    font: inherit;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 30px;
    padding: 0 10px;
    border: 1px solid #d7dce7;
    border-radius: 4px;
    color: #545b66;
    background: #fff;
    font-size: 12px;
}
.j2J6n:hover {
    border-color: #196eef;
    color: #196eef;
}
.j2J6n svg,
.pK48Q svg {
    width: 16px;
    height: 16px;
}
/* 滚动容器通栏（滚动条贴页面右缘），内容列由内层 messageListInner 保持 780 居中 */
.SOlKt {
    width: 100%;
    min-height: 0;
    flex: 1;
    padding: 32px 0 24px;
    box-sizing: border-box;
    overflow-y: auto;
    scroll-behavior: smooth;
}
.UrbR4 {
    width: min(var(--agent-card-width), calc(100% - 32px));
    margin: 0 auto;
}
.XDjl_ {
    width: 100%;
    padding: 0;
    overflow: hidden;
}
.W_FYG {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    height: 260px;
    color: #848b99;
    font-size: 13px;
}
.zJIk2 {
    display: inline-block;
    width: 13px;
    height: 13px;
    border: 2px solid #d7e4ff;
    border-top-color: #196eef;
    border-radius: 50%;
    animation: wfAGV .8s linear infinite;
}
@keyframes wfAGV {
    to {
        transform: rotate(360deg);
    }
}
/* 思考行（原与 .messageRow 同组规则，messageRow 已随 MessageRenderer 拆分，此处保留本态） */
.HwClW {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    width: 100%;
    margin-bottom: 16px;
}
.neFBq {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-height: 46px;
    box-sizing: border-box;
    padding: 7px 12px 7px 8px;
    border-radius: 12px;
    color: #9296a6;
    background: #fff;
    font-size: 14px;
    line-height: 14px;
    white-space: pre-wrap;
    word-break: break-word;
}
.Kdr6d {
    width: 32px;
    height: 32px;
    flex-shrink: 0;
}
.U2NJg,
.XZXDm {
    transform-box: fill-box;
    transform-origin: center;
    animation: oOndM 1.6s ease-in-out infinite;
}
.XZXDm {
    animation-name: OmK2J;
}
@keyframes oOndM {
    0%,
    100% {
        transform: scale(1);
        opacity: 1;
    }

    50% {
        transform: scale(.8);
        opacity: .72;
    }
}
@keyframes OmK2J {
    0%,
    100% {
        transform: scale(.7);
        opacity: 0;
    }

    50% {
        transform: scale(1);
        opacity: 1;
    }
}
.VkJ5V {
    margin: 0 auto 18px;
    padding: 9px 12px;
    border: 1px solid #f4c5c1;
    border-radius: 4px;
    color: #b42318;
    background: #fff6f5;
    font-size: 12px;
    line-height: 18px;
}
@media (max-width: 1100px) {
    .V8eZw {
        grid-template-columns: 205px minmax(0, 1fr);
    }

    .UrbR4 {
        /* 等价于旧规则（780 列内再缩进 28）的通栏换算：内容列宽 min(724, 100% - 88) */
        width: min(724px, calc(100% - 88px));
    }
}
@media (max-width: 820px) {
    .V8eZw {
        display: block;
        padding: 12px;

        /* 窄屏隐藏侧栏后无内滚需求，恢复文档滚动由 workspace 撑高 */
        height: auto;
        grid-template-rows: auto;
    }

    .SzEuA {
        min-height: calc(100vh - 111px);
    }

    .vIG2U {
        padding: 0 16px;
    }

    .j2J6n {
        display: none;
    }

    .SOlKt {
        padding: 20px 16px;
    }

    .XDjl_ {
        padding: 0 16px;
        overflow-y: auto;
    }
}

