/* ==========================================================================
   Phase 2 Base
   全局质感（点阵背景 + 开机指示线）、字体微调、mono utilities、status-dot
   不改变任何现有 layout，只加视觉层。
   Author: Claude · 2026-05-18 P0
   ========================================================================== */

/* === 全局背景 · 24px 点阵 + 极低对比，工作台仪表盘质感 ================== */
body {
  background-color: var(--c-bg);
  background-image: radial-gradient(var(--p2-grid) 1px, transparent 1px);
  background-size: 24px 24px;
  background-attachment: fixed;
  font-feature-settings: "ss01" 1, "cv11" 1;
}

/* === 顶部 1px 冷蓝描边 · "设备开机指示灯" =============================== */
body::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    var(--p2-accent) 20%,
    var(--p2-accent) 80%,
    transparent 100%
  );
  opacity: 0.5;
  z-index: 9999;
  pointer-events: none;
}

/* === Mono utility · 数字/ID/坐标/seed/路径一律用这个 class ============== */
.mono,
.num,
.is-mono,
[data-mono] {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1, "zero" 1;
  letter-spacing: 0;
}

/* === 通用 status dot · Obsidian / 连接 / 任务状态共用 ================== */
.status-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--c-text-muted);
  vertical-align: middle;
  margin-right: 6px;
  transition: background-color var(--t-fast), box-shadow var(--t-fast);
}
.status-dot[data-state="local"],
.status-dot[data-state="ok"],
.status-dot.is-ok {
  background: var(--p2-accent);
  box-shadow: 0 0 0 3px var(--p2-accent-glow);
}
.status-dot[data-state="fallback"],
.status-dot[data-state="warn"],
.status-dot.is-warn {
  background: var(--p2-warn);
}
.status-dot[data-state="offline"],
.status-dot[data-state="error"],
.status-dot.is-error {
  background: var(--p2-danger);
}

/* === 旧 .status-pill 视觉收紧（兼容老 DOM） ============================ */
.status-pill {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0;
  text-transform: none;
}

/* === 表格数字一律等宽（兼容旧表格 DOM） ================================ */
table td,
table th {
  font-variant-numeric: tabular-nums;
}

/* === Focus 收紧 · 不要发光环 ========================================== */
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 1px solid var(--p2-accent);
  outline-offset: -1px;
  box-shadow: none;
}

/* === 顶部 1px 加载进度条（可选用） ===================================== */
.p2-progress {
  position: fixed;
  top: 1px;
  left: 0;
  height: 2px;
  width: 0;
  background: var(--p2-accent);
  box-shadow: 0 0 8px var(--p2-accent-glow);
  transition: width var(--t-med);
  z-index: 9998;
  pointer-events: none;
}
