/*! v7工作室AI版 · [R73] 应用列表重做 + 「取消注入」按钮（mk-r73-injlist.css）
 * ------------------------------------------------------------------
 * 爹：「干脆增加一个取消注入按钮 然后这个获取应用列表重新制作一下UI 太不整齐了」
 *
 * 纯皮肤层：把控制页「应用列表」面板做成整齐的卡片 + 统一行高 / 徽标 / 按钮；
 *           并给「🎯 注入目标」那张 2000+ 行的卡片默认折叠（CSS :nth-child，零逐节点开销）。
 *
 * 作用域：只认带 .mk73-al 的容器（mk-r73-injlist.js 打在应用列表 / 注入记录 tab 根上）。
 *         选择器一律 html body .ctrl-page 起头抬权重（老皮肤爱用 !important）。
 * 回退：删掉 panel/index.html 里 mk-r73-injlist 两行即可（后端接口留着不影响）。
 *
 * 关键坑（R73 实测踩到）：
 *   1) mk-r43-popup.css 用 `html body .ctrl-page .ctrl-app-actions > button.mk43-hide{display:none!important}`
 *      藏掉「弹窗 / 横幅」两颗旧按钮。本文件若写 `... .ctrl-app-actions > button{display:inline-flex!important}`，
 *      多一个 .mk73-al 类就抬过了它 —— 那两颗会复活，一行挤 6~7 颗按钮直接爆行。
 *      所以本文件一律用 `> button:not(.mk43-hide)`，并把这颗的 display:none 再补一遍。
 *   2) .ctrl-app-name 原来是 block：徽标 + 文本节点 + 名字。改成 flex 后裸文本会变成匿名 flex 项、
 *      按最小内容换行 -> 「虚拟身份管理」被竖排成 6 行、行高从 70 涨到 130。
 *      正确做法：仍是 block，靠 white-space:nowrap + overflow:hidden + text-overflow:ellipsis 单行省略，
 *      徽标用 display:inline-flex + vertical-align:middle。
 */

/* ============ 1) 工具条：获取应用列表 / 取消注入 / 搜索 ============ */
html body .ctrl-page .mk73-al { padding: 12px !important; }
html body .ctrl-page .mk73-al .ctrl-fetch-bar {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin: 0 0 8px !important;
  padding: 8px !important;
  background: var(--bg2) !important;
  border: 1px solid var(--border) !important;
  border-radius: 12px !important;
}
html body .ctrl-page .mk73-al .ctrl-fetch-bar .ctrl-fetch-btn {
  flex: 0 0 auto !important;
  height: 32px !important;
  padding: 0 13px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  border-radius: 9px !important;
  gap: 6px !important;
  display: inline-flex !important;
  align-items: center !important;
}
html body .ctrl-page .mk73-al .ctrl-app-search {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin: 0 0 10px !important;
  padding: 8px !important;
  background: var(--bg2) !important;
  border: 1px solid var(--border) !important;
  border-radius: 12px !important;
}
html body .ctrl-page .mk73-al .ctrl-app-search input {
  flex: 1 1 auto !important;
  height: 32px !important;
  min-width: 0 !important;
  padding: 0 12px !important;
  font-size: 12px !important;
  border-radius: 9px !important;
  background: var(--bg3) !important;
  border: 1px solid transparent !important;
}
html body .ctrl-page .mk73-al .ctrl-app-search input:focus {
  background: var(--bg2) !important;
  border-color: var(--accent) !important;
}
html body .ctrl-page .mk73-al .ctrl-app-total {
  flex: 0 0 auto !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  color: var(--text2) !important;
  background: var(--bg3) !important;
  border-radius: 999px !important;
  padding: 4px 10px !important;
  white-space: nowrap !important;
}
html body .ctrl-page .mk73-al .ctrl-app-sys-toggle {
  flex: 0 0 auto !important;
  height: 28px !important;
  padding: 0 12px !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  border-radius: 999px !important;
  background: var(--bg3) !important;
  border: 1px solid transparent !important;
  white-space: nowrap !important;
}
html body .ctrl-page .mk73-al .ctrl-app-sys-toggle:hover {
  border-color: var(--accent) !important;
  color: var(--accent) !important;
}

/* ============ 2) 新增「取消注入」按钮 ============ */
html body .ctrl-page .mk73-cancel {
  flex: 0 0 auto !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  height: 32px !important;
  padding: 0 13px !important;
  font-family: inherit !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  cursor: pointer !important;
  color: #fff !important;
  background: linear-gradient(180deg, #f2604f 0%, #dc2626 100%) !important;
  border: 1px solid #c5221f !important;
  border-radius: 9px !important;
  box-shadow: 0 1px 2px rgba(197, 34, 31, .28) !important;
  transition: filter .15s, box-shadow .15s, transform .12s !important;
}
html body .ctrl-page .mk73-cancel:hover:not([disabled]) {
  filter: brightness(1.06) !important;
  box-shadow: 0 6px 16px -8px rgba(197, 34, 31, .95) !important;
}
html body .ctrl-page .mk73-cancel:active:not([disabled]) { transform: translateY(1px) !important; }
html body .ctrl-page .mk73-cancel[disabled] { opacity: .6 !important; cursor: not-allowed !important; }
html body .ctrl-page .mk73-cancel .mk73-cancel-ico { font-size: 13px !important; line-height: 1 !important; }
html body .ctrl-page .mk73-cancel.is-busy::after {
  content: "" !important;
  width: 11px !important; height: 11px !important;
  border: 2px solid rgba(255, 255, 255, .45) !important;
  border-top-color: #fff !important;
  border-radius: 50% !important;
  animation: mk73spin .6s linear infinite !important;
}
@keyframes mk73spin { to { transform: rotate(360deg); } }

/* ============ 3) 分组卡片 + 组头 ============ */
html body .ctrl-page .mk73-al .ctrl-app-group {
  background: var(--bg2) !important;
  border: 1px solid var(--border) !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  margin: 0 0 10px !important;
}
html body .ctrl-page .mk73-al .ctrl-app-group > div:first-child {
  position: sticky !important;
  top: 0 !important;
  z-index: 2 !important;
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 9px 12px !important;
  font-size: 11.5px !important;
  font-weight: 700 !important;
  background: var(--bg2) !important;
  border-bottom: 1px solid var(--border) !important;
}
html body .ctrl-page .mk73-al .ctrl-app-group > div:first-child > span {
  font-size: 10.5px !important;
  font-weight: 700 !important;
  color: var(--text2) !important;
  background: var(--bg3) !important;
  border-radius: 999px !important;
  padding: 1px 8px !important;
  line-height: 16px !important;
}

/* ============ 4) 行：统一高度 / 对齐（关键：不许换行） ============ */
html body .ctrl-page .mk73-al .ctrl-app-item {
  display: flex !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  gap: 9px !important;
  min-height: 0 !important;
  padding: 7px 10px !important;
  font-size: 12px !important;
  border-bottom: 1px solid var(--border) !important;
}
html body .ctrl-page .mk73-al .ctrl-app-item:last-child { border-bottom: none !important; }
html body .ctrl-page .mk73-al .ctrl-app-item:hover { background: var(--bg3) !important; }
html body .ctrl-page .mk73-al .ctrl-app-icon,
html body .ctrl-page .mk73-al .ctrl-app-icon-ph {
  flex: 0 0 auto !important;
  width: 32px !important;
  height: 32px !important;
  border-radius: 9px !important;
  font-size: 15px !important;
}
html body .ctrl-page .mk73-al .ctrl-app-info { flex: 1 1 auto !important; min-width: 0 !important; }
html body .ctrl-page .mk73-al .ctrl-app-name {
  display: block !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  line-height: 18px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
html body .ctrl-page .mk73-al .ctrl-app-pkg {
  font-size: 10.5px !important;
  line-height: 14px !important;
  color: var(--text3) !important;
  max-width: 100% !important;
  margin-top: 1px !important;
}
/* 状态徽标 / 「已配置注入，本机未安装」徽标统一成小药丸（行内、不换行） */
html body .ctrl-page .mk73-al .ctrl-app-name > span {
  display: inline-flex !important;
  align-items: center !important;
  vertical-align: middle !important;
  flex: 0 0 auto !important;
  font-size: 9.5px !important;
  font-weight: 700 !important;
  line-height: 14px !important;
  padding: 1px 6px !important;
  margin: -2px 5px 0 0 !important;
  border-radius: 999px !important;
  white-space: nowrap !important;
}

/* ============ 5) 行内操作按钮：紧凑等宽（注意 :not(.mk43-hide)，见文件头坑 1） ============ */
html body .ctrl-page .mk73-al .ctrl-app-actions {
  flex: 0 0 auto !important;
  display: flex !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  gap: 4px !important;
}
html body .ctrl-page .mk73-al .ctrl-app-actions > button.mk43-hide { display: none !important; }
html body .ctrl-page .mk73-al .ctrl-app-actions > button:not(.mk43-hide) {
  flex: 0 0 auto !important;
  height: 26px !important;
  min-width: 0 !important;
  padding: 0 7px !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  border-radius: 7px !important;
  white-space: nowrap !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* ============ 6) 「已配置注入，本机未安装」那些目标行：紧凑一行 ============ */
html body .ctrl-page .mk73-al .ctrl-app-item[style*="opacity"] {
  padding: 6px 10px !important;
  background: transparent !important;
}
html body .ctrl-page .mk73-al .ctrl-app-item[style*="opacity"] .ctrl-app-icon-ph {
  width: 22px !important;
  height: 22px !important;
  font-size: 11px !important;
  border-radius: 7px !important;
  background: transparent !important;
}
html body .ctrl-page .mk73-al .ctrl-app-item[style*="opacity"] .ctrl-app-name {
  font-size: 11.5px !important;
  font-weight: 600 !important;
  color: var(--text2) !important;
}

/* ============ 7) 「注入目标」默认折叠（第 21 行之后隐藏）+ 展开按钮 ============ */
html body .ctrl-page .mk73-al .mk73-collapse > div:not(.mk73-more):nth-child(n+22) {
  display: none !important;
}
html body .ctrl-page .mk73-al .mk73-more {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  width: 100% !important;
  margin: 0 0 10px !important;
  padding: 9px 12px !important;
  font-family: inherit !important;
  font-size: 11.5px !important;
  font-weight: 700 !important;
  color: var(--accent) !important;
  background: var(--bg2) !important;
  border: 1px dashed var(--border2, var(--border)) !important;
  border-radius: 10px !important;
  cursor: pointer !important;
  transition: background .15s, border-color .15s !important;
}
html body .ctrl-page .mk73-al .mk73-more:hover {
  background: var(--accent-light) !important;
  border-color: var(--accent) !important;
}

/* 窄屏兜底：列太窄时按钮再缩一档，保证不爆行 */
@media (max-width: 1600px) {
  html body .ctrl-page .mk73-al .ctrl-app-actions > button:not(.mk43-hide) { padding: 0 6px !important; font-size: 10px !important; }
  html body .ctrl-page .mk73-al .ctrl-app-item { gap: 7px !important; padding: 6px 8px !important; }
}