/* 行囊手动合成：沿用游戏原有的水墨册页风格（手绘墨框、一笔墨主按钮、墨线框次按钮、选中格同「已选」格图）。
   选中的零件格打墨勾；选齐后行囊中央缓缓浮出「合成」。 */
#panel .bg29 .inv-wrap { position: relative; }
#panel .bg29 .grid.inv .islot.cmb-pick, #panel .bg29 .islot.cmb-pick { border-image-source: url(../../assets/v29/ui/ui_cell_on.png); }
#panel .bg29 .islot.cmb-pick::after { content: ""; display: block; position: absolute; right: -3px; top: -5px; width: 14px; height: 14px; background: url(../../assets/v29/ui/ui_op_confirm.png) center / contain no-repeat; image-rendering: pixelated; pointer-events: none; }

.cmb-pop { position: absolute; left: 234px; top: 46%; z-index: 6; display: flex; flex-direction: column; align-items: center; gap: 4px; box-sizing: border-box; padding: 0 10px 2px;
  border: 16px solid transparent; border-image: url(../../assets/v29/ui/ui_kit_card_frame.png) 24 fill stretch; image-rendering: pixelated;
  transform: translate(-50%, -50%); animation: cmb-in .6s ease-out both; }
.cmb-pop > * { image-rendering: auto; }
.cmb-pop small { font-size: 12px; letter-spacing: 2px; color: var(--ink-3); }
.cmb-pop em { font-style: normal; font-size: 13px; letter-spacing: 1px; color: var(--ink-2); padding: 4px 0; }
.cmb-pop .cmb-row { display: flex; gap: 8px; align-items: center; }
.cmb-pop button { height: 30px; padding: 0 14px; font: 14px/1 'Noto Sans SC', sans-serif; letter-spacing: 3px; cursor: pointer; white-space: nowrap; }
.cmb-pop .cmb-go { min-width: 138px; border: 0; color: #f5efdc; background: url(../../assets/ui/ink/stroke.webp) center / 100% 100% no-repeat; }
.cmb-pop .cmb-x { color: var(--ink26, var(--ink)); background: rgba(255,249,232,.24); border: 2px solid rgba(44,37,30,.82); border-radius: 3px; letter-spacing: 2px; }
.cmb-pop button:active { transform: translateY(1px); }

.cmb-hint { position: absolute; left: 234px; top: 46%; z-index: 5; transform: translate(-50%, -50%); box-sizing: border-box; max-width: 420px; padding: 0 6px; pointer-events: none; animation: cmb-in .9s ease-out both;
  border: 8px solid transparent; border-image: url(../../assets/v29/ui/ui_well.png) 12 fill stretch; image-rendering: pixelated;
  font-size: 12.5px; letter-spacing: 2px; text-align: center; color: var(--ink-2); }
.cmb-hint::before, .cmb-hint::after { content: "——"; margin: 0 6px; opacity: .45; letter-spacing: 0; }
@keyframes cmb-in { from { opacity: 0; transform: translate(-50%, calc(-50% + 10px)); } to { opacity: 1; transform: translate(-50%, -50%); } }
@media (prefers-reduced-motion: reduce) { .cmb-pop, .cmb-hint { animation: none; } }
