/* ===================================================================
   radar-ui.css · 全站通用 UI 组件（公告条 / 免费徽章 / 维护遮罩 / 全球脉搏）
   前台首页与情报研判台共用，样式跟随 theme.css 的变量
   =================================================================== */

/* ───────── 全站公告条 ───────── */
.radar-announce {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  padding: 9px 18px; font-size: 13px; line-height: 1.5;
  border-bottom: 1px solid var(--border, #e4ddce);
  background: var(--accent-soft, rgba(201, 123, 63, .1));
  color: var(--text, #0a0c11);
}
.radar-announce.lv-warn { background: var(--warn-soft, rgba(168, 118, 44, .12)); }
.radar-announce.lv-danger { background: var(--bad-soft, rgba(176, 99, 103, .12)); }
.radar-announce .ra-text { flex: 1; min-width: 220px; }
.radar-announce .ra-link {
  color: var(--accent, #c97b3f); text-decoration: none; font-weight: 600; white-space: nowrap;
}
.radar-announce .ra-link:hover { text-decoration: underline; }
.radar-announce .ra-close {
  border: 0; background: transparent; cursor: pointer; color: var(--muted, #57554e);
  font-size: 14px; padding: 2px 6px; border-radius: 6px; line-height: 1;
}
.radar-announce .ra-close:hover { background: var(--hairline, rgba(20, 23, 30, .06)); color: var(--text, #0a0c11); }

/* ───────── 免费开放徽章 ───────── */
.radar-free-badge {
  display: inline-flex; align-items: center; gap: 5px; white-space: nowrap;
  padding: 5px 11px; border-radius: 999px; font-size: 12px; font-weight: 600;
  color: var(--good, #2f6f5e); background: var(--good-soft, rgba(47, 111, 94, .1));
  border: 1px solid color-mix(in srgb, var(--good, #2f6f5e) 28%, transparent);
  animation: freePulse 3.6s ease-in-out infinite;
}
@keyframes freePulse {
  0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--good, #2f6f5e) 26%, transparent); }
  50% { box-shadow: 0 0 0 5px transparent; }
}
@media (prefers-reduced-motion: reduce) { .radar-free-badge { animation: none; } }

/* ───────── 维护模式 ───────── */
.radar-maintenance {
  position: fixed; inset: 0; z-index: 9999; display: grid; place-items: center;
  background: color-mix(in srgb, var(--bg, #f7f5f0) 92%, transparent);
  backdrop-filter: blur(6px);
  font-size: 17px; font-weight: 600; color: var(--text, #0a0c11); padding: 24px; text-align: center;
}

/* ───────── 全球情报脉搏（情报研判台顶部） ───────── */
.pulse {
  display: flex; align-items: stretch; gap: 0;
  border-bottom: 1px solid var(--border, #e4ddce);
  background: linear-gradient(90deg, var(--panel-2, #fbf9f5), var(--panel, #fff));
  overflow: hidden;
}
.pulse-tag {
  display: flex; align-items: center; gap: 6px; flex: none;
  padding: 7px 13px; font-size: 12px; font-weight: 700; letter-spacing: .3px;
  color: var(--accent-2, #2f6f5e);
  background: var(--accent-2, #2f6f5e); color: #fff;
  border-radius: 0;
}
.pulse-win { flex: 1; min-width: 0; overflow: hidden; position: relative; display: flex; align-items: center; }
.pulse-track {
  display: flex; align-items: center; gap: 26px; white-space: nowrap;
  padding: 7px 0; will-change: transform;
  animation: pulseScroll 64s linear infinite;
}
.pulse:hover .pulse-track { animation-play-state: paused; }
@keyframes pulseScroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) { .pulse-track { animation: none; } }
.pulse-item { display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--text-2, #1e2532); }
.pulse-item .dot {
  width: 7px; height: 7px; border-radius: 50%; flex: none;
  background: var(--accent, #c97b3f);
}
.pulse-item.sev-high .dot { background: var(--bad, #b06367); }
.pulse-item.sev-medium .dot { background: var(--warn, #a8762c); }
.pulse-item.sev-low .dot { background: var(--muted-2, #7f7c72); }
.pulse-item b { font-weight: 650; }
.pulse-item .pl-src { color: var(--muted-2, #7f7c72); font-size: 11.5px; }
.pulse-stats {
  flex: none; display: flex; align-items: center; gap: 14px; padding: 7px 15px;
  border-left: 1px solid var(--border, #e4ddce); font-size: 11.5px; color: var(--muted, #57554e);
  background: var(--panel, #fff);
}
.pulse-stats b { color: var(--text, #0a0c11); font-variant-numeric: tabular-nums; }
@media (max-width: 860px) {
  .pulse-stats { display: none; }
  .pulse-tag { font-size: 11px; padding: 7px 9px; }
}

/* ───────── 后台入口（页脚低调链接） ───────── */
.radar-foot {
  margin: 40px auto 0; max-width: 1180px; padding: 18px 20px 40px;
  border-top: 1px solid var(--border, #e4ddce);
  color: var(--muted-2, #7f7c72); font-size: 12px; line-height: 1.9;
  display: flex; gap: 14px; flex-wrap: wrap; align-items: center;
}
.radar-foot a { color: var(--muted, #57554e); text-decoration: none; }
.radar-foot a:hover { color: var(--accent, #c97b3f); }
.radar-foot .sep { opacity: .5; }
