/* ===== composer-host.css — 底部输入区宿主 token 覆盖层（Q22 · 第 27 轮 · N7）=====
 * 规格：GAP-REVIEW C4 / C5；token 实证 HOST-EVIDENCE-4 §1.2（dtcoder-glass-react.css L13529–13571）
 * 规则：不改 styles.css；全部值引用 css/modules/tokens.css 的 --am-* 变量（每条注释标 token 来源行）；
 *       逐条改逐条 cmp2（tools/shot.sh && python3 tools/cmp2.py），任一条 >1px 立即回退，
 *       并在 docs/DESIGN-TOKENS.md「修复记录」标注「像素冲突待裁决」。
 * 加载顺序：index.html 中位于 tokens.css 之后（L17），靠顺序覆盖 styles.css .composer/.pill/.icon-btn。
 * 状态标记：[ON] 已落地且 cmp2 通过；[HOLD] 触发 cmp2 冲突，已回退为注释，等 Leader 裁决基线。
 */

/* ---------- C4 卡片容器 ---------- */

/* C4-1 [ON] 圆角 r12 → r16
 *   token: --am-radius-16 = 16px（宿主 --radius-16 L11926；ComposerInputShell 用 radius-16，HOST-EVIDENCE-4 §1.3） */
.composer { border-radius: var(--am-radius-16); }

/* C4-2 [ON] 边框 #dddddd → --am-composer-card-border（= --am-gray-a5 #0000001f；宿主 L13532 → L12165 → L12525）
 *   注：#0000001f 叠 #fcfcfc 合成结果 ≈ #dddddd，cmp2 'composer border' 用 bboxc 精确匹配 (0xdd,0xdd,0xdd) */
.composer { border-color: var(--am-composer-card-border); }

/* C4-3 [ON] 阴影 双层(0 2px 14px .045 + 0 0 4px .02) → --am-shadow-composer-card（= --raw-shadow-composer L11967 0px 4px 12px #0000000d） */
.composer { box-shadow: var(--am-shadow-composer-card); }

/* C4-4 [HOLD 像素冲突待裁决] 内边距 16 12 14 16 → --am-composer-card-padding（L13545 16px 12px 12px 16px；仅底边 14→12）
 *   cmp2：卡片高度 -2 → 整块下移 2px → 8 项 +2px（placeholder/tb plus/tb auto/tb model icon/tb model text/tb chev/tb sparkle/tb send），
 *   composer border 上缘 +2。复刻底边 14 是为对齐 ref/win.png 的补偿值（宿主为 12）。裁决前保持注释。
 * .composer { padding: var(--am-composer-card-padding); }
 */

/* C4-5 [ON] 最小高度 → --am-composer-card-min-height（L13549 116px）
 *   复刻现高 = 1139-1001 = 138 > 116，min-height 不生效，纯声明性对齐 */
.composer { min-height: var(--am-composer-card-min-height); }

/* ---------- C5 pill / chevron / 图标按钮 ---------- */

/* C5-1 [ON] pill 控件高 26 → --am-composer-control-height（L13552 20px）；hover 6px 内边 + r8 → 视觉 32 高
 *   宿主：控件本体 20，hover 态 padding 6 圆角 --radius-8（L11881），故 box 用 box-sizing:content-box 保 20 内容 + 6 内边 */
.pill { height: var(--am-composer-control-height); box-sizing: content-box; padding: 6px; border-radius: var(--am-radius-8); }
/* C5-1b .pill.model 在 styles.css L297 有更高特异性 padding(0 3px 0 4px)，同步纳入 6px 纵向内边保持 20+12 高 */
.pill.model { padding: 6px 3px 6px 4px; }

/* C5-2 [HOLD 像素冲突待裁决] pill 字重：.pill.model 500 → --am-font-weight-regular（L11917 400）；GAP-REVIEW C5「字 14 regular」
 *   cmp2：'tb model icon' 右缘 -7（字重变细后模型文字起点左移进入 900–950 探测窗，bboxdark 合并）→ 回退。
 *   自动放行 pill 保持 medium（C5 实测「自动放行 medium #a56900」，不改）。
 * .pill.model { font-weight: var(--am-font-weight-regular); }
 */

/* C5-3 [ON] chevron 14 → --am-composer-control-chevron-size（L13554 12px）；色 → --am-composer-secondary-fg（L13535 → gray-a11 #0000007d）
 *   .pill.model .chev 在 styles.css L299 已是 12px/#4a4a4a；.pill.auto .chev 为 14px/继承橙色 */
.pill .chev { width: var(--am-composer-control-chevron-size); height: var(--am-composer-control-chevron-size); }
.pill.model .chev { color: var(--am-composer-secondary-fg); }

/* C5-4 [HOLD 像素冲突待裁决] 图标按钮 24×24 r6 / #4a4a4a → 32×32 r8 / #0000007d（L13555/L13556/L13535）
 *   cmp2：按钮加宽 8px 使整条工具栏横向重排 → 6 项超标（tb plus +4 / tb auto +8 / tb model icon -17 / tb chev +12 / tb sparkle -12 / tb mic -4）。
 *   宿主 32 宽按钮意味着 ref/win.png 中 366–1138 的横向分布本身就与宿主不同（复刻用 24 宽 + 6/8 gap 凑位）。
 * .composer-bar .icon-btn {
 *   width: var(--am-composer-icon-button-size); height: var(--am-composer-icon-button-size);
 *   border-radius: var(--am-composer-icon-button-radius);
 *   color: var(--am-composer-secondary-fg);
 * }
 * .composer-bar .icon-btn svg { width: var(--am-composer-control-icon-size); height: var(--am-composer-control-icon-size); }
 */

/* C5-4a [ON] 图标按钮仅改「不动几何」的两项：圆角 r6 → r8（L13556）、颜色 #4a4a4a → #0000007d（L13535）
 *   宽高保持 24（styles.css L69），几何冲突项见 C5-4 */
.composer-bar .icon-btn { border-radius: var(--am-composer-icon-button-radius); color: var(--am-composer-secondary-fg); }

/* C5-4b [ON · Q22 C3 收口] 图标按钮 24×24 → --am-composer-icon-button-size（L13555 32px）
 *   HOST-EVIDENCE-4 §1.4 R1–R3 实证：右下三图标（回形针 attach / Sparkles / Mic）均 32×32
 *   r8 色 #0000007d（§1.2 --composer-icon-button-*）。
 *   原 HOLD 解除依据：round-27 Q21 后 cmp2 输入区 11 项（tb sparkle/tb mic/tb send 等）已由
 *   Leader 裁决登记 cmp2-known.json（「输入区卡片按 HOST-EVIDENCE-4 几何重排」），横向重排
 *   不再产生未知超标。左下「+」已 display:none（composer.js Q21 C3），不受影响。 */
.composer-bar .icon-btn {
  width: var(--am-composer-icon-button-size);
  height: var(--am-composer-icon-button-size);
}

/* C5-5 [HOLD 像素冲突待裁决] 工具栏元素间距 6/8 → --am-composer-footer-gap（L13559 → --gap-sm L11875 4px）
 *   cmp2：6 项超标（tb auto -3 / tb model icon +5 / tb model text +7 / tb chev +7 / tb sparkle +4 / tb mic +3）。
 *   与 C5-4 同源：宿主「32 宽按钮 + 4 gap」 vs 复刻「24 宽按钮 + 6 gap」是一套整体补偿，须与 C5-4 一起裁决。
 * .bar-left, .bar-right { gap: var(--am-composer-footer-gap); }
 */

/* C5-6 [ON] 占位符色 #9a9a9a → --am-composer-placeholder-fg（L13541 → gray-a8 #0004 ≈ #b9b9b9 on #fcfcfc）
 *   GAP-REVIEW C7 标「已对齐」但 styles.css L273 仍为硬编码 #9a9a9a，此处 token 化；cmp2 'placeholder' bboxdark(thr=200) 两色均 <200 */
#input::placeholder { color: var(--am-composer-placeholder-fg); }

/* C5-7 [ON] pill hover 底 rgba(0,0,0,.05) → --am-gray-a3（#0000000d；宿主 --color-gray-control-fill-hover L12159，composer 内 L13544 send-hover-bg 同源）
 *   hover 态，不在初始视图，cmp2 无影响 */
.pill:hover { background: var(--am-gray-a3); }

/* ---------- ⑤ 像素带收敛（round-27 Q22b 派工 · N3 Q31 量化基线） ---------- */
/* 基线（tools/verify-report.py composer-band，2026-09-24 实测）：
 *   卡片高度 mine=128 host=118 diff=+10；左边距 mine=76 host=72 diff=+4；右边距 mine=78 host=54 diff=+24。
 * 宿主证据：HOST-EVIDENCE-4 §1.2/§1.3（--composer-card-min-height 116 / padding 16 12 12 16 /
 *   editor min-height 40 / section-gap 16 / toolbar 32 → 空态实测 118）；宿主非对称外边距源于
 *   .worker-conversation-pane__composer-wrap padding 32 52 24 24（round-27 Q22b 派工引用）。
 * 修法（bbox 口径，工具按 #ddd 边框行探测，圆角 r16 使 bbox 比 CSS 总宽窄 ~29px）：
 *   ① 卡片宽 860 → 887（CSS 总宽 889）：补主区宽差 28（mine 主区 987 / host 主区 899，
 *      卡片宽占比 87% vs host 86%，宿主 --composer-max-width 860 另有 100% 覆盖实证 §1.2）；
 *   ② margin: 0 auto → 左 58 / 右 40：左边距 -4、右边距 -24（对齐宿主左 72 / 右 54）；
 *   ③ #input margin-bottom 44 → 34：卡片高 -10（128 → 118，= 宿主空态实测）。
 * C6 note 空态隐藏（composer.js）使卡片整体下移 20px，不影响本专项相对几何（高/左右边距）。 */
/* ④ .composer-wrap padding-bottom 14 → 24（宿主 .worker-conversation-pane__composer-wrap
 *   padding 32 52 24 24 的下边分量，round-27 Q22b 派工引用）：卡片底离窗底 14 → 24，
 *   对齐宿主空态形态（底边距为像素带信息项，不计差异）；上边 8 暂不动（改 32 会使
 *   卡片下移 24，与 visual-diff 20 态检测窗冲突，留待 Leader 裁决）。 */
.composer-wrap { padding-bottom: 24px; }
.composer { width: 891px; margin-left: 58px; margin-right: 36px; }
#input { margin-bottom: 34px; }
