/* ===================================================================
   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; }

/* ───────── AI 情报分析师入口（顶栏按钮 + 浮动胶囊） ───────── */
.btn.btn-analyst{
  position:relative;
  padding:9px 16px 9px 14px;
  background:linear-gradient(135deg,#c97b3f,#7c3aed);
  border-color:transparent; color:#fff;
  font-weight:800; letter-spacing:.02em;
  box-shadow:0 6px 18px rgba(124,58,237,.32), 0 0 0 1px rgba(255,255,255,.12) inset;
  animation:anBtnGlow 2.4s ease-in-out infinite;
}
.btn.btn-analyst:hover{
  filter:brightness(1.08); color:#fff; border-color:transparent;
  transform:translateY(-1px);
}
.btn.btn-analyst .an-live{
  width:8px; height:8px; border-radius:50%; background:#4ade80;
  box-shadow:0 0 0 0 rgba(74,222,128,.7);
  animation:anLive 1.6s ease-out infinite;
}
@keyframes anBtnGlow{
  0%,100%{ box-shadow:0 6px 18px rgba(124,58,237,.32), 0 0 0 1px rgba(255,255,255,.12) inset; }
  50%{ box-shadow:0 8px 26px rgba(201,123,63,.5), 0 0 0 1px rgba(255,255,255,.18) inset; }
}
@keyframes anLive{
  0%{ box-shadow:0 0 0 0 rgba(74,222,128,.7); }
  70%{ box-shadow:0 0 0 8px rgba(74,222,128,0); }
  100%{ box-shadow:0 0 0 0 rgba(74,222,128,0); }
}

.analyst-fab{
  position:fixed; right:18px; bottom:18px; z-index:90;
  display:flex; align-items:center; gap:10px;
  min-height:58px; padding:8px 16px 8px 10px;
  border:0; border-radius:999px; cursor:pointer;
  text-decoration:none; color:#fff;
  background:linear-gradient(135deg,#c97b3f 0%,#7c3aed 100%);
  box-shadow:0 10px 28px rgba(124,58,237,.42);
  font:inherit;
  animation:fabBob 3.2s ease-in-out infinite;
}
a.analyst-fab{ color:#fff; }
.analyst-fab:hover{ transform:translateY(-3px) scale(1.03); color:#fff; box-shadow:0 14px 34px rgba(201,123,63,.5); }
.analyst-fab .fab-pulse{
  position:absolute; inset:-6px; border-radius:999px; pointer-events:none;
  border:2px solid rgba(124,58,237,.45);
  animation:fabRing 2s ease-out infinite;
}
.analyst-fab .fab-ico{
  width:42px; height:42px; border-radius:50%;
  display:grid; place-items:center; flex:none;
  background:rgba(255,255,255,.18); font-size:22px; line-height:1;
}
.analyst-fab .fab-txt{ display:flex; flex-direction:column; line-height:1.15; text-align:left; }
.analyst-fab .fab-txt b{ font-size:14px; font-weight:800; letter-spacing:.02em; }
.analyst-fab .fab-txt i{ font-style:normal; font-size:11px; opacity:.9; margin-top:3px; }
@keyframes fabRing{
  0%{ transform:scale(.92); opacity:.7; }
  100%{ transform:scale(1.12); opacity:0; }
}
@keyframes fabBob{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(-4px); }
}
@media (max-width:640px){
  .analyst-fab{ right:10px; bottom:10px; padding:7px 12px 7px 8px; min-height:52px; }
  .analyst-fab .fab-txt i{ display:none; }
  .analyst-fab .fab-ico{ width:36px; height:36px; font-size:18px; }
}
@media (prefers-reduced-motion:reduce){
  .btn.btn-analyst, .btn.btn-analyst .an-live, .analyst-fab, .analyst-fab .fab-pulse{ animation:none; }
}

.analyst-hero-cta{
  display:inline-flex; align-items:center; gap:10px;
  margin-top:16px; padding:12px 20px; border-radius:999px;
  background:linear-gradient(135deg,#c97b3f,#7c3aed); color:#fff;
  font-weight:800; text-decoration:none; font-size:15px;
  box-shadow:0 10px 24px rgba(124,58,237,.28);
}
.analyst-hero-cta:hover{ color:#fff; filter:brightness(1.06); transform:translateY(-1px); }
.analyst-hero-cta small{ font-weight:600; opacity:.9; font-size:12px; }
