/* DeSpy Security Alerts (/security-alerts/, ADR 0027). Palette from blog.css.
   No remote images anywhere in this section: the page CSP is img-src 'self' data:. */
.sa-back { margin: 0 0 6px; font-size: 14px; }
.sa-lead { color: var(--muted); max-width: 72ch; }
.sa-muted { color: var(--muted); font-size: 13.5px; margin: 6px 0; }
.sa-tier { margin: 4px 0 16px; font-size: 14px; color: var(--muted); }
.sa-chip {
  display: inline-block; padding: 2px 8px; border-radius: 999px; border: 1px solid;
  font-size: 12px; font-weight: 700; margin-right: 4px;
}
.sa-chip-source { background: #f6e8c8; color: #6b4e12; border-color: #e4cf98; }
.sa-section { margin: 26px 0; }
.sa-section h2 { font-family: var(--serif); font-size: 22px; margin: 0 0 10px; }
.sa-section h3 { font-size: 16px; margin: 16px 0 6px; }
.sa-facts { padding-left: 20px; margin: 6px 0; }
.sa-facts li { margin: 4px 0; }
.sa-attrib { font-size: 14px; color: var(--muted); margin: 0 0 6px; }
.sa-quote {
  margin: 8px 0; padding: 10px 14px; border-left: 3px solid var(--sage-2);
  background: var(--cream); white-space: pre-wrap; overflow-wrap: anywhere;
}
.sa-banner { padding: 12px 14px; border-radius: 8px; margin: 12px 0; }
.sa-banner-withdrawn { background: #f3e6d8; border: 1px solid #e5c98a; color: #5a3b00; }
.sa-kev { padding: 12px 16px; border: 1px solid #e4cf98; border-radius: 10px; background: #fbf3e0; }
.sa-table { width: 100%; border-collapse: collapse; font-size: 14px; margin: 8px 0; }
.sa-table th, .sa-table td { text-align: left; padding: 6px 8px; border-bottom: 1px solid var(--line); vertical-align: top; overflow-wrap: anywhere; }
.sa-cpes code, .sa-facts code { font-size: 12px; overflow-wrap: anywhere; }
.sa-refs { padding-left: 20px; font-size: 13.5px; overflow-wrap: anywhere; }
.sa-rows { list-style: none; padding: 0; margin: 8px 0; }
.sa-row { padding: 8px 0; border-bottom: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; }
.sa-row > a { font-weight: 700; font-variant-numeric: tabular-nums; }
.sa-row-what { flex: 1 1 260px; color: var(--ink); overflow-wrap: anywhere; }
.sa-row-date { color: var(--muted); font-size: 13px; font-variant-numeric: tabular-nums; }
.sa-row .sa-muted { flex-basis: 100%; }
.sa-badge { font-size: 11.5px; padding: 1px 7px; border-radius: 999px; border: 1px solid var(--line); background: var(--paper-2); color: var(--ink); }
.sa-badge-kev { background: #fbe3dc; border-color: #eab8a8; color: #7a2410; }
.sa-badge-withdrawn { border-style: dashed; color: var(--muted); }
.sa-empty { color: var(--muted); padding: 10px 12px; border: 1px dashed var(--line); border-radius: 8px; }
.sa-search { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-end; }
.sa-search label { flex-basis: 100%; font-size: 14px; color: var(--muted); }
.sa-search input { flex: 1 1 240px; max-width: 460px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--cream); color: var(--ink); font: inherit; }
.sa-search button { padding: 10px 16px; border-radius: 8px; border: 1px solid var(--forest); background: var(--forest); color: var(--cream); font: inherit; cursor: pointer; }
.sa-results { margin-top: 10px; }
.sa-makers { columns: 3 220px; padding-left: 18px; }
.sa-makers-all { columns: 2 280px; padding-left: 18px; font-size: 14px; }
.sa-years, .sa-pages { font-size: 14px; }
.sa-licence { font-size: 12.5px; color: var(--muted); }
.sa-notices {
  margin: 36px 0 10px; padding: 14px 16px; border-top: 1px solid var(--line);
  font-size: 12.5px; color: var(--muted); line-height: 1.55;
}
.sa-notices p { margin: 4px 0; }
