/* 部署分析（#/apsdeploy）：样式全在 ad- 前缀下，不改全局变量，颜色沿用外壳变量 */
.ad { display: flex; flex-direction: column; gap: 16px; }
.ad-section h2 { margin: 0 0 8px; }
.ad-table { width: 100%; border-collapse: collapse; font-size: 13px; }
/* 全站的表头与灰字是 11–11.5px，本页最小字号要求 12px，这里单独抬一点 */
.ad th, .ad .subtle, .ad .row a { font-size: 12px; }
.ad-table th, .ad-table td { text-align: left; padding: 6px 8px; border-bottom: 1px solid var(--line, #e5e7eb); vertical-align: top; }
.ad-table th { font-weight: 600; color: var(--muted, #6b7280); }
.ad-badge { display: inline-block; white-space: nowrap; padding: 1px 8px; border-radius: 10px; font-size: 13px; margin-right: 6px; background: #eef2f7; color: #374151; }
.ad-badge.ad-ok, .ad-badge.ad-confirmed, .ad-badge.ad-running { background: #e7f6ec; color: #1f7a3d; }
.ad-badge.ad-candidate, .ad-badge.ad-partial, .ad-badge.ad-warn { background: #fff6e0; color: #8a5a00; }
.ad-badge.ad-default { background: #eef2ff; color: #3949ab; }
.ad-badge.ad-gap, .ad-badge.ad-bad, .ad-badge.ad-failed, .ad-badge.ad-blocked { background: #fdecea; color: #b42318; }
.ad-checks, .ad-groups, .ad-files, .ad-warns, .ad-reasons { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.ad-groups { flex-direction: row; flex-wrap: wrap; gap: 8px 16px; }
.ad-checks li b { margin-right: 8px; }
.ad-steps { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; padding: 0; margin: 0 0 8px; }
.ad-step { padding: 4px 10px; border-radius: 12px; font-size: 13px; background: #f3f4f6; color: #6b7280; }
.ad-step-done { background: #e7f6ec; color: #1f7a3d; }
.ad-step-now { background: #fff6e0; color: #8a5a00; font-weight: 600; }
.ad-run-line { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.ad-err { color: #b42318; }
.ad-kv { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 6px 16px; margin: 8px 0; }
.ad-kv dt { color: var(--muted, #6b7280); font-size: 13px; }
.ad-kv dd { margin: 0; font-weight: 600; }
.ad-open { display: inline-block; margin: 6px 0; }
.ad-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--line, #e5e7eb); }
.ad-tabs > button { background: none; border: 0; border-radius: 0; border-bottom: 2px solid transparent; padding: 8px 14px; color: var(--muted, #6b7280); }
.ad-tabs > button[aria-pressed="true"] { color: var(--accent, #2563eb); font-weight: 600; border-bottom-color: var(--accent, #2563eb); }
.ad-trials { list-style: none; margin: 0 0 6px; padding: 0; display: flex; flex-direction: column; gap: 4px; }
/* 通用排程演示（aps-generic）：模板标识、数据来源横幅、映射列表、演示假设 */
.ad-tpl { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0; }
.ad-tpl-select { font-size: 13px; padding: 4px 8px; max-width: 100%; }
.ad-banner { margin: 4px 0 8px; padding: 8px 12px; border-radius: 8px; background: #fff6e0; color: #8a5a00; font-weight: 600; font-size: 14px; }
.ad-map, .ad-assume { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-direction: column; gap: 2px; font-size: 13px; word-break: break-all; }
.ad-section details summary { cursor: pointer; font-size: 13px; }
.ad-section { overflow-x: auto; }
/* 宽表放在 .ad-scroll 里横向滚动，窄屏不藏列（藏第 5 列会丢掉置信度、说明这些内容） */
.ad-scroll { max-width: 100%; overflow-x: auto; }
.ad-scroll > .ad-table { min-width: 560px; }
.ad-fix { margin-left: 8px; }
.ad-checks li { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
@media (max-width: 720px) { .ad-scroll > .ad-table { min-width: 480px; } }
/* 框架 v3：模板与案例卡片（替换原下拉框）、界面方案的修改意见框 */
.ad-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(240px, 100%), 1fr)); gap: 12px; margin: 8px 0; }
.ad-card { border: 1px solid var(--line, #e5e7eb); border-radius: 10px; padding: 12px 14px; display: flex; flex-direction: column; gap: 6px; align-items: flex-start; min-width: 0; background: var(--panel, #fff); }
.ad-card-on { border-color: var(--accent, #2563eb); box-shadow: 0 0 0 2px var(--accent-soft, #eaf1ff); }
.ad-card h3 { margin: 0; font-size: 14px; overflow-wrap: anywhere; }
.ad-card p { margin: 0; overflow-wrap: anywhere; }
.ad-card-text { font-size: 13px; line-height: 1.6; }
.ad-revise { display: flex; flex-direction: column; gap: 6px; margin-top: 10px; align-items: flex-start; }
.ad-revise label { display: flex; flex-direction: column; gap: 4px; font-size: 13px; font-weight: 600; width: 100%; }
.ad-revise textarea { width: 100%; max-width: 720px; font-size: 13px; padding: 6px 8px; box-sizing: border-box; }
.ad-revise-out p { margin: 2px 0; font-size: 13px; }
