/* 计划执行详情（现场执行）专用样式，配合 core.css 使用 */

.head-right .fh-select { min-width: 260px; }

/* ---- 计划抬头 ---- */
.plan-bar {
  display: flex; align-items: center; flex-wrap: wrap; gap: 12px 24px;
  margin-bottom: 14px; padding: 14px 18px;
  border: 1px solid var(--border); border-left: 3px solid var(--primary);
  border-radius: 4px; background: #fff;
}
.plan-bar h2 { margin: 0; font-size: 17px; font-weight: 600; color: var(--text); }
.plan-bar .pb-meta { display: flex; flex-wrap: wrap; gap: 4px 18px; color: var(--muted); font-size: 13px; }
.plan-bar .pb-meta span { display: inline-flex; align-items: center; gap: 5px; }
.plan-bar .pb-meta .ivu-icon { color: #b2b7c3; font-size: 15px; }
.plan-bar .pb-right { margin-left: auto; display: flex; align-items: center; gap: 18px; }
.pb-pace { text-align: right; }
.pb-pace-k { color: var(--muted); font-size: 12px; }
.pb-pace-v { margin-top: 3px; font-size: 13px; font-weight: 600; }
.pb-pace-v.ahead { color: var(--success); }
.pb-pace-v.behind { color: var(--danger); }
.pb-pace-v.onpace { color: var(--primary); }

#detail > .panel { margin-bottom: 14px; }

.head-badge {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 16px; height: 16px; padding: 0 5px; margin-left: 4px;
  border-radius: 8px; background: var(--danger); color: #fff;
  font-size: 11px; font-style: normal; line-height: 16px; font-weight: 600;
}
.head-badge.mute { background: #c5c8ce; }
.head-right .plain-action[disabled] { opacity: .45; cursor: not-allowed; }

/* ---- 检查点队列 ---- */
.cp-list { padding: 6px 16px 14px; display: grid; gap: 10px; }
.cp {
  padding: 12px 14px; border: 1px solid var(--border); border-radius: 4px; background: #fff;
}
.cp.warn { border-color: #ffd591; background: #fffdf7; }
.cp.bad { border-color: #ffb3ad; background: #fffaf9; }
.cp-top { display: flex; align-items: center; gap: 10px; }
.cp-ic { width: 30px; height: 30px; border-radius: 8px; display: grid; place-items: center; font-size: 17px; }
.cp-name { font-size: 15px; font-weight: 600; color: var(--text); }
.cp-top .spacer { flex: 1; }
.cp-num { font-family: Consolas, Menlo, monospace; font-size: 14px; color: var(--text); }
.cp-num b { font-weight: 600; color: var(--primary); }

.cp-bar { margin-top: 9px; height: 6px; border-radius: 3px; background: #eef1f5; overflow: hidden; }
.cp-fill { height: 100%; border-radius: 3px; }

.cp-meta {
  display: flex; flex-wrap: wrap; gap: 4px 16px;
  margin-top: 9px; color: var(--muted); font-size: 12px;
}
.cp-meta span { display: inline-flex; align-items: center; gap: 5px; }
.cp-meta b { font-weight: 600; color: var(--text); }
.cp-meta .bad { color: var(--danger); }
.cp-meta .warn { color: var(--warn); }
.cp-acts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.cp-acts .plain-action { height: 28px; padding: 0 10px; font-size: 12px; }

/* ---- 预警（抽屉里用，不再占主栏） ---- */
.alert-list { display: grid; gap: 10px; }
.al {
  padding: 11px 13px; border: 1px solid var(--border);
  border-left: 3px solid var(--warn); border-radius: 4px; background: #fffdf7;
}
.al.danger { border-left-color: var(--danger); background: #fffaf9; }
.al.handled { border-left-color: var(--success); background: #fafcfb; opacity: .78; }
.al-top { display: flex; align-items: center; gap: 8px; }
.al-t { font-size: 14px; font-weight: 600; color: var(--text); }
.al-top .spacer { flex: 1; }
.al-dur { color: var(--light); font-size: 12px; }
.al-note { margin-top: 5px; color: var(--sub); font-size: 12px; line-height: 1.7; }
.al-acts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 9px; }
.al-acts .plain-action { height: 28px; padding: 0 10px; font-size: 12px; }
.al-done { margin-top: 7px; color: var(--success); font-size: 12px; }

/* ---- 调配记录（抽屉里用） ---- */
.dispatch-list { display: grid; }
.dp { padding: 9px 0; border-bottom: 1px solid #f2f4f7; }
.dp:last-child { border-bottom: 0; }
.dp-top { display: flex; align-items: center; gap: 8px; }
.dp-l { font-size: 13px; font-weight: 500; color: var(--text); }
.dp-top time { margin-left: auto; color: var(--light); font-size: 12px; }
.dp-d { margin-top: 4px; color: var(--sub); font-size: 12px; line-height: 1.6; }
.dp-by { margin-top: 3px; color: var(--light); font-size: 12px; }

/* ---- 未检名单 ---- */
.stu-table td { vertical-align: middle; }
.dots { display: flex; flex-wrap: wrap; gap: 4px; }
.dot {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 1px 7px; border-radius: 3px; font-size: 12px; line-height: 18px;
}
.dot.done { color: var(--success); background: #e8f7ef; }
.dot.pending { color: var(--muted); background: #f2f3f5; }
.dot.skipped { color: var(--danger); background: #fff1f0; }
.mini-bar { display: flex; align-items: center; gap: 8px; }
.mini-track { flex: 1; height: 5px; border-radius: 3px; background: #eef1f5; overflow: hidden; }
.mini-fill { height: 100%; border-radius: 3px; background: var(--primary); }
.mini-n { flex: none; color: var(--muted); font-size: 12px; font-family: Consolas, Menlo, monospace; }

.r-pager {
  display: flex; align-items: center; justify-content: flex-end; gap: 8px;
  padding: 12px 16px 14px; color: #808695; font-size: 13px;
}
.r-pager button {
  min-width: 32px; height: 32px; padding: 0 8px; border: 1px solid #dcdee2; border-radius: 4px;
  background: #fff; color: #515a6e; cursor: pointer;
}
.r-pager button.on, .r-pager button:hover:not(:disabled) { color: var(--primary); border-color: var(--primary); }
.r-pager button:disabled { opacity: .45; cursor: not-allowed; }

