/* 管理后台 B：租户与密钥 / 授权记录 / 任务 / 决策账本 / 门禁。
   共享类已在 base.css（.page .panel .tbl .tag .chip .kv .note .drawer .tabs .count ...），
   这里只补这五页专属的样式，类名一律 .cb- 前缀（console-b）避免撞名。 */

/* ---------- 通用：筛选行 / 小列表 ---------- */
.cb-filter-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; }
.cb-filter-row:last-of-type { margin-bottom: 20px; }
.cb-filter-label { font-size: var(--fs-12); color: var(--ink-40); margin-right: 2px; }
.cb-filter-sep { width: 1px; height: 18px; background: var(--line-2); margin: 0 4px; }
.cb-cell-stack { display: flex; flex-direction: column; gap: 2px; padding: 8px 0; }

.cb-mini-list { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--ink-60); line-height: 18px; }
.cb-mini-list.cb-mini-list-lg { font-size: var(--fs); color: var(--ink-80); gap: 10px; line-height: 22px; }
.cb-mini-list > div { padding-left: 14px; position: relative; }
.cb-mini-list > div::before { content: '·'; position: absolute; left: 2px; color: var(--ink-24); }

.cb-pattern-list { display: flex; flex-direction: column; gap: 4px; padding: 8px 0; }
.cb-pattern-list code { width: fit-content; max-width: 100%; overflow-wrap: anywhere; }

/* ---------- 详情抽屉：字段块之间的间距 ---------- */
.cb-drawer-block + .cb-drawer-block { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--line-2); }

/* ---------- 决策账本 ---------- */
.cb-decision-section { scroll-margin-top: 20px; margin-bottom: 40px; }
.cb-decision-list { display: flex; flex-direction: column; gap: 12px; }
.cb-decision-card { border: 1px solid var(--line); border-radius: var(--r-12); padding: 16px 20px; background: var(--bg); }
.cb-decision-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.cb-decision-extra { font-size: 13px; color: var(--ink-40); }

.cb-decision-body { position: relative; overflow: hidden; }
.cb-decision-body.is-collapsed { max-height: 48px; }
.cb-decision-body.is-collapsed::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 24px; background: linear-gradient(rgba(255, 255, 255, 0), var(--bg)); pointer-events: none; }
.cb-decision-body .md { font-size: 13px; line-height: 24px; }
.cb-decision-body .md > *:first-child { margin-top: 0; }

.cb-expand-btn { margin-top: 8px; font-size: 12px; font-weight: 500; color: var(--brand); }
.cb-expand-btn:hover { color: var(--brand-hover); }

/* ---------- 门禁 ---------- */
.cb-status-hero { display: flex; align-items: center; gap: 16px; }
.cb-status-hero .dot { width: 14px; height: 14px; flex: none; }

.cb-gate-panel { display: flex; flex-direction: column; gap: 2px; }
.cb-gate-title { font-size: 13px; font-weight: 600; color: var(--ink-90); line-height: 18px; }
.cb-gate-check { display: flex; align-items: flex-start; gap: 8px; padding: 6px 0; font-size: 12px; line-height: 18px; color: var(--ink-60); border-top: 1px solid var(--line-2); }
.cb-gate-check:first-of-type { border-top: none; margin-top: 6px; }
.cb-gate-check .dot { margin-top: 5px; }

.cb-cmd-col .section-title { font-size: var(--fs-16); }
