/* ===== 交互卡片版专属样式 ===== */
/* 快捷场景卡：与标准单选卡片（.icard-opt）统一样式 */
.quick-card { flex: 1; max-width: 47%; border: 1px solid #ebebeb; border-radius: 8px; background: #fff; cursor: pointer; transition: all .15s; padding: 0; font: inherit; text-align: left; }
.quick-card:hover { border-color: #da2634; box-shadow: 0 2px 8px rgba(218, 38, 52, .1); }
.quick-card-inner { padding: 14px 16px; display: flex; flex-direction: column; justify-content: center; gap: 4px; min-height: 96px; }
.quick-card-title { font-size: 14px; font-weight: 600; color: #1f2937; display: flex; align-items: center; }
.quick-card:hover .quick-card-title { color: #da2634; }
.quick-card-title .icon { color: #da2634; font-size: 17px; margin-right: 8px; display: inline-flex; }
.quick-card-title .icon svg { width: 1em; height: 1em; }
.quick-card-desc { font-size: 12px; color: #999; line-height: 1.5; }

.interact-block { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0; }
/* 是/否按钮：与标准单选卡片统一样式 */
.choice-btn { min-width: 120px; height: 34px; border-radius: 8px; cursor: pointer; background: #fff; color: #1f2937; border: 1px solid #ebebeb; display: inline-flex; justify-content: center; align-items: center; gap: 2px; font-size: 13px; font-weight: 600; transition: all .15s; }
.choice-btn:hover { border-color: #da2634; box-shadow: 0 2px 8px rgba(218, 38, 52, .1); }
.choice-btn:first-child::before { content: ""; width: 13px; height: 13px; margin-right: 6px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2316a34a'%3E%3Cpath d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E") no-repeat center/contain; }
.choice-btn:last-child::before { content: ""; width: 12px; height: 12px; margin-right: 7px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23f5222d'%3E%3Cpath d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/%3E%3C/svg%3E") no-repeat center/contain; }

.md-line { margin: 2px 0; }
.md-row { display: list-item; margin: 5px 15px; padding: 5px; list-style: disc; }
.md-key { font-weight: 600; }
.md-key::after { content: ": "; }
.tag-success { color: #047857; font-weight: 600; }
.tag-fail { color: #dc2626; font-weight: 600; }
.msg-content a { color: #da2634; word-break: break-all; }
.msg-content table { width: 100%; border-collapse: collapse; margin: 8px 0; display: block; overflow-x: auto; }
.msg-content th, .msg-content td { border: 1px solid #eee; padding: 6px 10px; font-size: 13px; text-align: left; white-space: pre; }
.msg-content th { background: #fafafa; font-weight: 600; }

/* ===== 4 类标准交互卡片（气泡内，垂直布局） ===== */
/* 卡片容器 */
.icard { background: #fff; border: 1px solid #ececec; border-radius: 10px; padding: 4px; margin: 6px 0; }
/* 单选卡片：垂直选项 + radio 圆点 + 确认提交 */
.icard-single .si-list { padding: 2px; }
.icard-single .si { display: flex; align-items: flex-start; gap: 10px; border: 1px solid #ebebeb; border-radius: 8px; padding: 8px 12px; cursor: pointer; background: #fff; transition: all .15s; margin-bottom: 6px; user-select: none; }
.icard-single .si:hover { border-color: #ffb3b8; }
.icard-single .si .rg { width: 15px; height: 15px; border-radius: 50%; border: 1px solid #d9d9d9; flex-shrink: 0; margin-top: 2px; position: relative; background: #fff; transition: all .15s; }
.icard-single .si .si-main { flex: 1; min-width: 0; }
.icard-single .si .t { font-size: 13px; color: #1f2937; font-weight: 500; display: block; }
.icard-single .si .d { font-size: 11px; color: #999; margin-top: 2px; line-height: 1.4; display: block; }
.icard-single .si.on { border-color: #da2634; background: #fff7f7; }
.icard-single .si.on .t { color: #da2634; }
.icard-single .si.on .rg { border-color: #da2634; }
.icard-single .si.on .rg::after { content: ""; position: absolute; left: 3px; top: 3px; width: 7px; height: 7px; border-radius: 50%; background: #da2634; }
.icard-single .si-foot { display: flex; justify-content: flex-end; align-items: center; gap: 8px; padding: 2px 6px 6px; }
.icard-single .si-foot .cf-btn { min-width: 88px; }
/* 多选模式（icard-single.icard-multi-mode）：checkbox 样式 */
.icard-multi-mode .si .cb { width: 15px; height: 15px; border-radius: 4px; border: 1px solid #d9d9d9; flex-shrink: 0; margin-top: 2px; position: relative; background: #fff; transition: all .15s; }
.icard-multi-mode .si.on .cb { background: #da2634; border-color: #da2634; }
.icard-multi-mode .si.on .cb::after { content: ""; position: absolute; left: 4px; top: 4px; width: 6px; height: 3px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(-45deg); }
.icard-multi-mode .sel-tip { font-size: 11px; color: #bbb; margin-right: auto; }
.icard-multi-mode .si-foot .cf-btn { flex: 0 0 auto; }
/* 多选卡片 */
.icard-multi .mi { display: flex; align-items: center; gap: 8px; border: 1px solid #ebebeb; border-radius: 8px; padding: 7px 12px; cursor: pointer; background: #fff; transition: all .15s; margin-bottom: 6px; user-select: none; }
.icard-multi .mi:hover { border-color: #ffb3b8; }
.icard-multi .mi .cb { width: 15px; height: 15px; border-radius: 4px; border: 1px solid #d9d9d9; flex-shrink: 0; position: relative; background: #fff; transition: all .15s; }
.icard-multi .mi.on { border-color: #da2634; background: #fff7f7; }
.icard-multi .mi.on .cb { background: #da2634; border-color: #da2634; }
.icard-multi .mi.on .cb::after { content: ""; position: absolute; left: 4px; top: 4px; width: 6px; height: 3px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(-45deg); }
.icard-multi .mi .mt { font-size: 13px; color: #1f2937; font-weight: 500; }
.icard-multi .mi .md { font-size: 11px; color: #999; margin-left: auto; }
.icard-multi .mi.on .mt { color: #da2634; }
.icard-multi .mi .sel-tip { font-size: 11px; color: #bbb; }
/* 步骤确认卡 */
.icard-confirm { background: #fff; border: 1px solid #ececec; border-radius: 10px; padding: 10px 12px; margin: 6px 0; }
/* 交互卡片通用按钮（红白系，与步骤确认卡统一） */
.cf-btn { height: 30px; border-radius: 7px; border: 1px solid #d9d9d9; background: #fff; color: #374151; font-size: 12px; cursor: pointer; transition: all .15s; padding: 0 16px; }
.cf-btn:hover { border-color: #da2634; color: #da2634; }
.cf-btn.primary { background: #da2634; border-color: #da2634; color: #fff; }
.cf-btn.primary:hover { background: #e64c53; color: #fff; }
.icard-confirm .cf-btns { display: flex; gap: 8px; margin-top: 8px; }
.icard-confirm .cf-btn { flex: 1; }
.icard-multi .cf-btn { flex: 0 0 auto; }
/* 操作记录卡 */
.op-log { background: #fafafa; border-left: 3px solid #da2634; border-radius: 6px; padding: 8px 12px; margin: 6px 0; }
.op-log .ol-head { display: flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: #1f2937; margin-bottom: 2px; }
.op-log .ol-badge { font-size: 11px; font-weight: 600; border-radius: 4px; padding: 1px 6px; flex-shrink: 0; }
.op-log.op-add .ol-badge { background: #ecfdf5; color: #047857; }
.op-log.op-update .ol-badge { background: #eff6ff; color: #1d4ed8; }
.op-log.op-del .ol-badge { background: #fef2f2; color: #dc2626; }
.op-log.op-undo .ol-badge { background: #fff7ed; color: #b45309; }
.op-log.op-save .ol-badge { background: #fdf4ff; color: #a21caf; }
.op-log.op-switch .ol-badge { background: #f0fdfa; color: #0d9488; }
.op-row { font-size: 13px; padding: 3px 0; color: #1f2937; }
.op-old { color: #999; text-decoration: line-through; margin: 0 4px; }
.op-new { color: #047857; font-weight: 600; margin: 0 4px; }
.op-tip { font-size: 11px; color: #bbb; margin-top: 4px; }

/* 执行进度卡（v24：每步一行文字+完成标记） */
.exec-steps { background: #fafafa; border-radius: 8px; padding: 8px 14px; margin: 6px 0; }
.exec-step { padding: 4px 0; font-size: 13px; line-height: 20px; color: #8c8c8c; }
.exec-step.done { color: #1f2937; }
.exec-mark { display: inline-block; width: 16px; margin-right: 6px; color: #bfbfbf; }
.exec-step.done .exec-mark { color: #047857; }

