bdb07c141b
- 根因:`.project-supervisor-surface.is-direct-codex` 下消息列表与输入区是两只各自带边框、 各自绝对定位的盒子——列表 `bottom: 104px`、输入区 `bottom: 0; left/right: 0`,两盒上下 紧贴。输入区自己那只盒子的左右描边与列表的左右描边接成两条贯穿整栏的竖线,加上列表 只留 24px 底部内边距,最后一条消息还会被不透明的输入区盖住。观感就是"输入框紧挨着 对话框、两侧有突兀竖条"。 - styles.css:消息列表(direct-codex)改为铺满整个会话区(`bottom: 104px` → `0`),它自己 那只带描边和圆角的盒子就是"对话框";`padding-bottom` 与 `scroll-padding-bottom` 由 24px 提到 256px,给框内输入区留出位置(256 ≈ 输入区最高 230px + 12px 内缩 + 约 14px 间距)。 - styles.css:输入区(direct-codex,含同类选择器共两条绝对定位规则)由贴边改为框内内聚 区块:左右下三边各内缩 12px,圆角 14px 收到与外框同一档 12px;边框、底色、阴影继续用 既有 token(`--platform-surface-border` / `--platform-input-fill`),不新增配色。 - 不改交互语义:输入区仍是同一棵 DOM(编辑器、@ 引用、AI 润色、模型选择、提交按钮全部 原位),只改它在对话框里的落点与留白。 - project-development.suite.ts:新增守卫——对话框盒子四边归 0、输入区三边内缩同一个值、 仍是绝对定位且保留边框与底色、消息列表留白 ≥ 输入区最高高度 + 内缩且与 `scroll-padding-bottom` 同值、编辑器 min/max 高度就是留白算式的来源;并同步既有那条 钉 `bottom: 104px` 的断言为 `bottom: 0`。 - 说明:本机无无头浏览器、vitest 未开 `css: true`,像素级观感只能靠真机复核;这里钉的是 声明级几何关系与"输入区仍在同一棵渲染树里"。