/* =============================================================================
 * realism.css —— Task 65 · 体验真实感六件套（纯前端样式层）
 * 只增不改：不改主链 / 不改权限判定 / 不改后端；颜色全部走 tokens.css 变量。
 * 六项：① 报告水印 ③ 审批 SLA ④ 密级角标 ⑤ 操作回执 ⑥ 页脚状态条
 * ========================================================================== */

/* ===== ① 报告水印 ===================================================== */
/* 容器内单层 .wm-layer：绝对定位 + pointer-events:none + SVG data-URI 平铺，
   不生成重复 DOM 节点，也不进入 elementFromPoint 命中层。 */
.briefing-preview { position: relative; overflow: hidden; }
.md-modal { position: relative; }
.wm-layer {
  position: absolute; inset: 0;
  pointer-events: none; user-select: none;
  opacity: .07;
  background-repeat: repeat; background-position: 0 0;
  z-index: 1;
}
/* 弹窗：标题栏压在水印之上，正文在水印之下 */
.md-modal > header { position: relative; z-index: 2; }
.md-modal > .md-body { position: relative; z-index: 0; }

/* ===== ③ 审批 SLA 倒计时 ============================================= */
.aprv-sla {
  margin-left: var(--space-2);
  font-family: var(--font-mono);
  font-size: var(--font-size-2xs);
  color: var(--color-text-tertiary);
  white-space: nowrap;
}
.aprv-sla.is-warn { color: var(--color-warning); }
.aprv-sla.is-over { color: var(--color-danger); font-weight: var(--weight-semibold); }

/* ===== ④ 数据密级角标（来源单元格内，不新增列） ======================= */
.lvl-badge {
  display: inline-block; margin-left: var(--space-1);
  padding: 0 var(--space-1);
  font-family: var(--font-mono); font-size: 10px; line-height: 14px;
  color: var(--color-text-tertiary);
  border: 1px solid var(--color-border-strong);
  border-radius: 2px;
  background: transparent;
  vertical-align: 1px; white-space: nowrap;
}
.lvl-badge.lvl-secret {
  color: var(--color-warning-text);
  border-color: var(--color-warning-border);
}

/* 来源列：来源文字 + 密级角标同处一行（不让角标因列宽不足掉行）
   仅宽屏生效：手机 390 列宽极窄，强制单行会把表格撑出横向滚动。 */
@media (min-width: 641px) {
  table.result td:nth-child(5) { white-space: nowrap; }
}

/* ===== ② 被拦提示里的「为什么被拦 →」 ================================ */
.alert.denied .deny-why {
  margin-left: var(--space-2);
  font-size: var(--font-size-xs); font-weight: var(--weight-regular);
  color: var(--color-danger-text);
  text-decoration: none; white-space: nowrap;
  border-bottom: 1px dashed currentColor;
}
.alert.denied .deny-why:hover { color: var(--color-danger); }

/* ===== ⑤ 操作回执编号 =============================================== */
.card-receipt {
  margin-top: var(--space-2-5); padding-top: var(--space-2);
  border-top: 1px dashed var(--color-border);
  display: flex; align-items: center; gap: var(--space-1-5);
  font-size: var(--font-size-xs); color: var(--color-text-tertiary);
}
.card-receipt .rc-dot {
  width: 5px; height: 5px; border-radius: 50%;
  background: var(--color-success); flex: 0 0 auto;
}
.card-receipt .rc-id {
  font-family: var(--font-mono); color: var(--color-text-secondary);
  font-weight: var(--weight-medium);
}
.card-receipt .rc-link {
  margin-left: auto; color: var(--color-primary);
  text-decoration: none; border-bottom: 1px dotted var(--color-primary-border-strong);
}
.card-receipt .rc-link:hover { color: var(--color-primary-400); }

/* ===== ⑥ 页脚状态条 ================================================= */
.sys-footer {
  position: fixed; left: 0; right: 0; bottom: 0; height: 24px;
  display: flex; align-items: center; gap: var(--space-1-5);
  padding: 0 var(--space-4-5);
  background: var(--color-bg-surface);
  border-top: 1px solid var(--color-border);
  color: var(--color-text-tertiary);
  font-family: var(--font-mono); font-size: var(--font-size-2xs);
  letter-spacing: .02em; white-space: nowrap; overflow: hidden;
  z-index: var(--z-sidebar);
  pointer-events: none;  /* 关键：不得进入 elementFromPoint 命中层 */
}
.sys-footer .sf-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--color-success); flex: 0 0 auto;
}
.sys-footer .sf-t-short { display: none; }

/* 关键：给输入区与主内容留 24px，否则固定条会遮住输入框与底部点击目标 */
.composer { padding-bottom: calc(var(--space-3-5) + 24px); }
.stream { padding-bottom: calc(var(--space-4-5) + 24px); }
aside.right { padding-bottom: 24px; }
aside.left { padding-bottom: 24px; }

@media (max-width: 640px) {
  .sys-footer { font-size: 11px; padding: 0 var(--space-3); }
  .sys-footer .sf-t { display: none; }
  .sys-footer .sf-t-short { display: inline; }
}

/* 手机端 FAB 上移，避免压住页脚文字（页脚本身不接收点击） */
@media (max-width: 900px) {
  .right-fab { bottom: calc(24px + var(--space-2-5)); }
}

/* 发布包：页脚合规链接（链接可点击，其余区域不拦截点击） */
.sys-footer { pointer-events: none; }
.sys-footer .sf-a { pointer-events: auto; color: var(--color-text-secondary); text-decoration: none; }
.sys-footer .sf-a:hover { color: var(--color-primary-500); text-decoration: underline; }
.sys-footer .sf-sep { color: var(--color-neutral-400); }
@media (max-width: 640px) {
  .sys-footer .sf-sep:nth-of-type(2),
  .sys-footer .sf-sep:nth-of-type(3),
  .sys-footer a[href="/privacy"],
  .sys-footer a[href="/terms"] { display: none; }
}

/* 发布包：页脚整体提到可读对比度（11px 也要能看清备案号） */
.sys-footer { color: var(--color-text-secondary); font-size: 11.5px; }
.sys-footer .sf-dot { background: var(--color-success); }
