/* ===========================================================================
   「AI 回复」键从输入框分裂出来（塔拉 10-06）
   范围：角色聊天的默认外观——仿 Claude / 仿 ChatGPT 两张皮（键收在战术装备栏）和锈湖不参与。
   平时键缩进输入框左边缘；输入框聚焦（键盘起来）、最后一条是 user、AI 正在回复（睁眼）时弹出来。
   状态由 ui/chat/reply-split.js 在 .input-row 上挂 .az-reply-split / .az-reply-ready；
   果冻形变用 Web Animations 播，这里只管宽度让位与两个终态，不碰 style 属性。
   弹出态不覆盖各主题自己的边框 / 底色 / 阴影，只接管 transition。
   =========================================================================== */

html:not([data-theme="roots"]) #character-chat-screen:not(.chat-ui-mode-claude):not(.chat-ui-mode-chatgpt) .input-row.az-reply-split .chat-input-wrap {
    z-index: 2;   /* 键从输入框底下钻出来，不是从上面盖过去 */
}

/* 收起：宽度、间距、边框归零，整颗键藏到输入框左边缘底下 */
html:not([data-theme="roots"]) #character-chat-screen:not(.chat-ui-mode-claude):not(.chat-ui-mode-chatgpt) .input-row.az-reply-split:not(.az-reply-ready) #character-ai-reply-btn {
    flex: 0 0 auto !important;
    width: 0 !important;
    min-width: 0 !important;
    margin-right: -8px !important;   /* 吃掉 .input-row 的 8px gap（13 个世界实测都是 8px） */
    border-width: 0 !important;
    /* 这三项不能带 !important：important 声明压得过 Web Animations，收回动画会播不出来 */
    opacity: 0;
    transform: translateX(30px) scale(.4);
    visibility: hidden;
    pointer-events: none !important;
    overflow: hidden !important;
    transition:
        width .26s cubic-bezier(.5, 0, .7, .4),
        min-width .26s cubic-bezier(.5, 0, .7, .4),
        margin-right .26s cubic-bezier(.5, 0, .7, .4),
        visibility 0s linear .26s !important;
}

/* 弹出：宽度走弹簧曲线，过冲约 16% 再回来——输入框被挤一下又弹回，果冻感主要来自这里 */
html:not([data-theme="roots"]) #character-chat-screen:not(.chat-ui-mode-claude):not(.chat-ui-mode-chatgpt) .input-row.az-reply-split.az-reply-ready #character-ai-reply-btn {
    flex: 0 0 auto !important;
    transition:
        width .62s linear(0, 0.056, 0.195, 0.378, 0.572, 0.753, 0.906, 1.023, 1.102, 1.147, 1.163, 1.157, 1.136, 1.107, 1.075, 1.045, 1.019, 0.999, 0.985, 0.977, 0.974, 0.974, 0.977, 0.982, 0.987, 0.992, 1),
        min-width .62s linear(0, 0.056, 0.195, 0.378, 0.572, 0.753, 0.906, 1.023, 1.102, 1.147, 1.163, 1.157, 1.136, 1.107, 1.075, 1.045, 1.019, 0.999, 0.985, 0.977, 0.974, 0.974, 0.977, 0.982, 0.987, 0.992, 1),
        margin-right .62s linear(0, 0.056, 0.195, 0.378, 0.572, 0.753, 0.906, 1.023, 1.102, 1.147, 1.163, 1.157, 1.136, 1.107, 1.075, 1.045, 1.019, 0.999, 0.985, 0.977, 0.974, 0.974, 0.977, 0.982, 0.987, 0.992, 1),
        box-shadow .15s ease,
        background .3s ease,
        color .3s ease,
        border-color .3s ease !important;
}

/* 首帧定位、切会话、切主题时不播，直接落到终态 */
html:not([data-theme="roots"]) #character-chat-screen:not(.chat-ui-mode-claude):not(.chat-ui-mode-chatgpt) .input-row.az-reply-split.az-reply-still #character-ai-reply-btn {
    transition: none !important;
}

@media (prefers-reduced-motion: reduce) {
    html:not([data-theme="roots"]) #character-chat-screen:not(.chat-ui-mode-claude):not(.chat-ui-mode-chatgpt) .input-row.az-reply-split #character-ai-reply-btn {
        transition: none !important;
    }
}
