/* ═══════════════════════════════════════════
   Intelligence Detail — Site Profile
   Clean, scannable, analyst-readable.
   ═══════════════════════════════════════════ */
.sp { max-width:1080px; margin:0 auto; padding:20px 24px 60px; }

/* ── Activity hero — the most important thing on the page ── */
.act-hero {
  display:grid; grid-template-columns:1fr auto; gap:20px;
  align-items:start; margin-bottom:20px;
}
.act-hero-left { min-width:0; }
.sp-name { font-size:24px; font-weight:800; color:var(--text-0); letter-spacing:-0.03em; line-height:1.2; }
.sp-sub { font-size:14px; color:var(--text-2); margin-top:4px; font-weight:500; }
.sp-badges { display:flex; flex-wrap:wrap; gap:5px; margin-top:10px; }
.sp-b { font-size:11px; font-weight:700; padding:3px 10px; border-radius:10px; letter-spacing:0.02em; }
.sp-b-red { background:var(--red-soft); color:var(--red); }
.sp-b-ora { background:var(--orange-soft); color:var(--orange); }
.sp-b-yel { background:var(--yellow-soft); color:var(--yellow); }
.sp-b-grn { background:var(--green-soft); color:var(--green); }
.sp-b-blu { background:rgba(91,142,219,.1); color:var(--cat-nato); }
.sp-b-mut { background:var(--bg-hover); color:var(--text-3); }

/* Activity level badge — large, right-aligned */
.act-badge {
  text-align:center; padding:16px 24px; border-radius:10px; min-width:140px;
  border:none;
}
.act-badge.act-HIGH { background:var(--red-soft); border-color:var(--red); }
.act-badge.act-MODERATE { background:var(--orange-soft); border-color:var(--orange); }
.act-badge.act-LOW { background:var(--green-soft); border-color:var(--green); }
.act-badge.act-UNKNOWN { background:var(--bg-1); }
.act-badge.act-STALE { background:var(--bg-1); border-color:var(--border-subtle); border-style:dashed; }
.act-STALE .act-level { color:var(--text-3); }
.act-level { font-size:22px; font-weight:800; letter-spacing:0.02em; }
.act-HIGH .act-level { color:var(--red); }
.act-MODERATE .act-level { color:var(--orange); }
.act-LOW .act-level { color:var(--green); }
.act-UNKNOWN .act-level { color:var(--text-3); }
.act-label { font-size:9px; text-transform:uppercase; letter-spacing:1px; color:var(--text-3); font-weight:700; margin-bottom:4px; }
.act-date { font-size:10px; color:var(--text-3); margin-top:6px; }

/* ── Compact stats ── */
.sp-stats { display:flex; gap:8px; margin-bottom:16px; flex-wrap:wrap; }
.sp-stat {
  flex:1; min-width:100px;
  background:var(--bg-1); border:none; border-radius:10px;
  padding:10px 12px;
}
.sp-stat-v { font-size:20px; font-weight:700; color:var(--text-0); font-variant-numeric:tabular-nums; line-height:1; }
.sp-stat-l { font-size:10px; color:var(--text-2); text-transform:uppercase; letter-spacing:.4px; margin-top:3px; font-weight:600; }

/* ── Two-column layout ── */
.sp-grid { display:grid; grid-template-columns:1fr 340px; gap:14px; margin-bottom:14px; }

/* ── Cards ── */
.sp-card { background:var(--bg-1); border:none; border-radius:10px; padding:14px 16px; margin-bottom:10px; }
.sp-card:last-child { margin-bottom:0; }
.sp-card h3 { margin:0 0 8px; font-size:11px; text-transform:uppercase; letter-spacing:.6px; color:var(--text-3); font-weight:700; }
.sp-card p { font-size:14px; color:var(--text-1); line-height:1.65; margin:0; font-weight:450; }

/* Threat card */
.sp-threat { border-left:none;color: var(--red); }
.sp-threat p { color:var(--text-0); }

/* ── IMINT Analysis card — the star ── */
.imint-card { border-left:none;color: var(--orange); background:var(--bg-1); }
.imint-summary { font-size:14px; color:var(--text-1); line-height:1.6; margin:0 0 10px; font-weight:450; }
.imint-details { display:grid; grid-template-columns:1fr 1fr 1fr; gap:6px; }
.imint-pill {
  background:var(--bg-hover); border-radius:5px; padding:6px 8px; text-align:center;
}
.imint-pill-v { font-size:14px; font-weight:700; color:var(--text-0); }
.imint-pill-l { font-size:9px; color:var(--text-3); text-transform:uppercase; letter-spacing:.4px; }

/* ── Activity trend chart ── */
.trend-chart {
  display:flex; align-items:end; gap:3px; height:40px; padding:4px 0;
}
.trend-bar {
  flex:1; border-radius:10px 2px 0 0; position:relative; cursor:default;
  transition: opacity .12s;
}
.trend-bar:hover { opacity:.8; }
.trend-bar[data-level="HIGH"] { background:var(--red); }
.trend-bar[data-level="MODERATE"] { background:var(--orange); }
.trend-bar[data-level="LOW"] { background:var(--green); }
.trend-dates { display:flex; justify-content:space-between; font-size:8px; color:var(--text-3); margin-top:2px; }
.trend-legend { display:flex; gap:8px; font-size:9px; color:var(--text-3); margin-top:4px; }
.trend-legend span::before { content:''; display:inline-block; width:8px; height:8px; border-radius:10px; margin-right:3px; vertical-align:middle; }
.trend-legend .tl-h::before { background:var(--red); }
.trend-legend .tl-m::before { background:var(--orange); }
.trend-legend .tl-l::before { background:var(--green); }

/* ── Props ── */
.sp-props { display:grid; grid-template-columns:auto 1fr; gap:6px 14px; font-size:13px; }
.sp-props dt { color:var(--text-3); white-space:nowrap; font-weight:600; }
.sp-props dd { color:var(--text-0); margin:0; font-weight:450; }

/* Equipment / subordinate chips */
.sp-equip { display:flex; flex-wrap:wrap; gap:3px; }
.sp-eq { font-size:10px; padding:2px 7px; border-radius:6px; background:var(--bg-hover); color:var(--text-1); font-family:var(--mono); }
.sp-eq-unit { background:rgba(91,142,219,.08); color:var(--cat-nato); }

/* ── Satellite preview ── */
.sp-map-wrap { position:sticky; top:80px; }
.sp-map-box { background:var(--bg-1); border:none; border-radius:10px; overflow:hidden; position:relative; }
#sat-map { height:380px; width:100%; }
.sp-map-cap { padding:8px 12px; font-size:11px; color:var(--text-2); border-top:1px solid var(--border-subtle); display:flex; justify-content:space-between; font-weight:500; }
.sp-map-cap a { color:var(--text-2); text-decoration:none; }
.sp-map-cap a:hover { color:var(--text-0); }

/* Source toggle buttons */
.src-btns { position:absolute; top:8px; right:8px; display:flex; gap:3px; z-index:10; }
.src-btn { background:rgba(0,0,0,.6); color:#8b949e; border:1px solid #555; padding:2px 8px; border-radius:10px; font-size:9px; cursor:pointer; font-family:inherit; backdrop-filter:blur(4px); }
.src-btn.active { color:#58a6ff; border-color:#58a6ff; font-weight:600; }
.src-btn.active-s2 { color:#3fb950; border-color:#3fb950; }

/* Gradient overlay on preview */
.preview-grad { position:absolute; bottom:0; left:0; right:0; background:linear-gradient(transparent,rgba(0,0,0,.8)); padding:14px 12px 8px; color:#fff; font-size:10px; pointer-events:none; }

/* ── Links ── */
.sp-links { display:flex; flex-wrap:wrap; gap:4px; }
.sp-link { font-size:11px; padding:4px 10px; border-radius:5px; border:none; color:var(--text-2); text-decoration:none; transition:all .12s; display:inline-flex; align-items:center; gap:4px; font-weight:500; }
.sp-link:hover { background:var(--bg-hover); color:var(--text-0); border-color:var(--text-3); }

/* ── Timeline ── */
.sp-tl { background:var(--bg-1); border:none; border-radius:10px; padding:14px 16px; }
.sp-tl h3 { margin:0 0 8px; font-size:10px; text-transform:uppercase; letter-spacing:.7px; color:var(--text-3); font-weight:700; }
.tl-row { display:grid; grid-template-columns:110px auto 1fr; gap:6px; padding:4px 0; border-bottom:1px solid var(--bg-2); font-size:11px; align-items:center; }
.tl-row:last-child { border-bottom:none; }
.tl-time { color:var(--text-3); font-variant-numeric:tabular-nums; font-size:10px; }
.tl-badge { font-size:8px; font-weight:700; padding:1px 5px; border-radius:6px; white-space:nowrap; }
.tl-text { color:var(--text-2); }
.tl-empty { color:var(--text-3); font-size:11px; padding:4px 0; line-height:1.5; }

/* Nearby table */
.nb-tbl { width:100%; border-collapse:collapse; font-size:11px; }
.nb-tbl th { text-align:left; font-size:9px; color:var(--text-3); font-weight:600; text-transform:uppercase; letter-spacing:.5px; padding:3px 6px; border-bottom:1px solid var(--bg-2); }
.nb-tbl td { padding:3px 6px; border-bottom:1px solid var(--bg-2); color:var(--text-2); }
.nb-tbl tr:last-child td { border-bottom:none; }

/* Distance indicator */
.dist-pill { display:inline-flex; align-items:center; gap:8px; margin-top:8px; }
.dist-bar { width:80px; height:4px; border-radius:10px; background:var(--bg-hover); overflow:hidden; }
.dist-fill { height:100%; border-radius:10px; }
.dist-val { font-size:13px; font-weight:600; color:var(--text-1); }

.leaflet-control-attribution { display:none !important; }
.leaflet-control-zoom a { background:var(--bg-1) !important; color:var(--text-2) !important; border:none !important; border-radius:5px !important; width:24px !important; height:24px !important; line-height:22px !important; font-size:13px !important; }

@media (max-width:800px) {
  .sp-grid { grid-template-columns:1fr; }
  .sp-map-wrap { position:static; }
  .act-hero { grid-template-columns:1fr; }
  .act-badge { justify-self:start; }
  #sat-map { height:280px; }
  .sp-stats { flex-wrap:wrap; }
  .sp-stat { min-width:80px; }
  .imint-details { grid-template-columns:1fr 1fr; }
}
