.guide { max-width:820px; margin:-20px auto 0; padding:20px 0 60px; }
.guide h2 { font-size:26px; font-weight:800; margin:0 0 6px; color:var(--text-0); }
.guide .lead { font-size:15px; color:var(--text-2); margin-bottom:28px; line-height:1.6; }

.g-card { background:var(--bg-1); border:none; border-radius:12px; padding:22px 24px; margin-bottom:14px; box-shadow:var(--card-shadow); }
.g-card h3 { font-size:18px; font-weight:700; margin:0 0 10px; color:var(--text-0); }
.g-card p { font-size:14px; line-height:1.7; color:var(--text-1); margin:0 0 12px; }
.g-card p:last-child { margin-bottom:0; }

.g-grid { display:grid; grid-template-columns:auto 1fr; gap:6px 16px; font-size:14px; line-height:1.7; }
.g-grid strong { white-space:nowrap; color:var(--text-0); }
.g-grid span { color:var(--text-1); }

.g-badge { display:inline-block; padding:3px 10px; border-radius:6px; font-weight:700; font-size:12px; margin-right:4px; }

.g-cols { display:grid; grid-template-columns:1fr 1fr; gap:14px; font-size:14px; }
.g-cols div { margin-bottom:4px; }
.g-cols a { color:var(--cat-nato); }

.g-ul { font-size:14px; line-height:1.75; color:var(--text-1); padding-left:22px; }
.g-ul li { margin-bottom:6px; }
.g-ul strong { color:var(--text-0); }

.g-callout { font-size:13px; color:var(--text-2); margin-top:10px; padding:10px 14px; border-radius:8px; background:var(--bg-2); line-height:1.6; }

/* ── Source table — stays compact (technical detail) ── */
.src-tbl { width:100%; font-size:12px; border-collapse:collapse; }
.src-tbl th { text-align:left; padding:6px 8px; color:var(--text-3); font-weight:700; font-size:10px; text-transform:uppercase; letter-spacing:.5px; border-bottom:2px solid var(--bg-2); }
.src-tbl td { padding:6px 8px; border-bottom:1px solid var(--bg-2); vertical-align:top; line-height:1.6; }
.src-tbl tr:last-child td { border:none; }
.src-tbl .src-name { font-weight:700; color:var(--text-0); }
.src-tbl .src-type { font-size:10px; color:var(--text-3); text-transform:uppercase; letter-spacing:.3px; }
.src-tbl a { color:var(--cat-nato); text-decoration:none; }
.src-tbl a:hover { text-decoration:underline; }

/* ── Source category headers ── */
.src-cat { background:var(--bg-hover); }
.src-cat td { padding:10px 8px 6px !important; border-bottom:none !important; }
.src-cat-label { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.6px; }
.src-cat-count { font-size:10px; font-weight:600; color:var(--text-3); margin-left:2px; }
.src-cat-desc { font-size:12px; font-weight:400; color:var(--text-2); margin-left:4px; text-transform:none; letter-spacing:0; }
.src-cat-geoint .src-cat-label { color:var(--green); }
.src-cat-sigint .src-cat-label { color:var(--accent); }
.src-cat-war .src-cat-label { color:var(--red); }
.src-cat-russia .src-cat-label { color:var(--orange); }
.src-cat-osint .src-cat-label { color:var(--cat-dip); }
.src-cat-infra .src-cat-label { color:var(--cat-dip); }

/* ── Source legend strip ── */
.src-legend { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:14px; font-size:12px; }
.src-legend-item { display:flex; align-items:center; gap:5px; }
.src-legend-dot { width:10px; height:10px; border-radius:10px; flex-shrink:0; }

@media (max-width:768px) {
  .guide { margin-top:-16px; padding:0 0 40px; }
  .guide h2 { font-size:22px; }
  .guide .lead { font-size:14px; }
  .g-card { padding:16px 18px; }
  .g-card h3 { font-size:16px; }
  .g-card p { font-size:13px; }
  .g-grid { font-size:13px; }
  .g-cols { grid-template-columns:1fr; }
  .src-legend { gap:6px; }

  .src-tbl, .src-tbl thead, .src-tbl tbody, .src-tbl tr, .src-tbl th, .src-tbl td {
    display:block; width:100%;
  }
  .src-tbl thead { display:none; }
  .src-tbl tr { padding:10px 0; border-bottom:1px solid var(--bg-2); }
  .src-tbl tr:last-child { border-bottom:none; }
  .src-tbl td { padding:2px 0; border:none !important; }
  .src-tbl .src-name { font-size:14px; }
  .src-tbl .src-type { display:block; margin-top:1px; }
  .src-cat td { padding:10px 0 6px !important; }

  .guide [style*="grid-template-columns:1fr 1fr"],
  .guide [style*="grid-template-columns: 1fr 1fr"] {
    grid-template-columns:1fr !important;
  }
  .g-card { overflow-x:auto; }
}

@media (max-width:480px) {
  .guide { margin-top:-10px; padding:0 0 32px; }
  .guide h2 { font-size:20px; }
  .g-card { padding:14px 16px; }
  .g-card h3 { font-size:15px; }
  .g-card p { font-size:13px; }
  .g-grid { gap:3px 10px; font-size:12px; }
}
