/* ============ 罗盘 SVG 内部样式 ============ */
.dial-rim-num {
  font-family: var(--font-mono);
  font-size: 11px;
  fill: #4a3b16;
  letter-spacing: 0.5px;
}
.dial-ring-tag {
  font-family: var(--font-mono);
  font-size: 14px;
  fill: rgba(233, 226, 207, 0.75);
  paint-order: stroke;
  stroke: rgba(13, 43, 51, 0.85);
  stroke-width: 4px;
}
.dial-badge-num {
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 600;
  fill: var(--brass-200);
}
.dial-kpi-name {
  font-size: 16.5px;
  font-weight: 600;
  fill: var(--dial-text-hi);
  letter-spacing: 2px;
  paint-order: stroke;
  stroke: rgba(13, 43, 51, 0.8);
  stroke-width: 5px;
}

/* 指针交互态 */
.needle { cursor: pointer; }
.needle__body, .needle__gem, .needle__gem-halo, .needle__badge, .dial-kpi-name {
  transition: opacity 0.25s, filter 0.25s;
}
.needle.is-dim .needle__body { opacity: 0.45; }
.needle.is-dim .needle__gem { opacity: 0.4; }
.needle.is-dim .needle__gem-halo { opacity: 0.2; }
.needle.is-dim .dial-kpi-name { opacity: 0.4; }
.needle.is-dim .needle__badge { opacity: 0.45; }
.needle.is-active .needle__body { filter: drop-shadow(0 0 5px rgba(216, 188, 116, 0.55)); }
.needle.is-active .needle__gem { filter: drop-shadow(0 0 6px rgba(99, 199, 194, 0.9)); }
.needle.is-active .dial-kpi-name { fill: var(--brass-200); }
.needle:hover .needle__body { filter: drop-shadow(0 0 4px rgba(216, 188, 116, 0.4)); }

.dial-deficit { pointer-events: none; }
