.attack-matrix { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(150px, 1fr); gap: 10px; overflow-x: auto; padding-bottom: 8px; margin: 18px 0; }
.attack-col { border-top: 1px solid var(--hair-strong); padding-top: 6px; min-width: 0; }
.attack-col h3 { font-size: 0.9rem; margin: 0 0 2px; }
.attack-col ul { list-style: none; margin: 6px 0 0; padding: 0; }
.attack-col li { font-size: 0.78rem; line-height: 1.3; padding: 4px 0; border-bottom: 1px solid var(--hair); }
.attack-list { list-style: none; padding: 0; margin: 8px 0 16px; }
.attack-list li { padding: 4px 0; border-bottom: 1px solid var(--hair); }
.attack-list.cols { columns: 2 280px; column-gap: 28px; }
.attack-list.cols li { break-inside: avoid; }
.attack-list .mono, .attack-col .mono, .attack-facts .mono { font-family: var(--mono); color: var(--brass); margin-right: 4px; }
.attack-facts { display: grid; grid-template-columns: max-content 1fr; gap: 4px 16px; margin: 12px 0 20px; }
.attack-facts dt { color: var(--muted); }
.attack-facts dd { margin: 0; }
.attack-rel dt { margin-top: 10px; }
.attack-rel dd { margin: 2px 0 0 0; color: var(--muted); }
.attack-rel dd p { margin: 2px 0; }
.attack-banner { border: 1px solid var(--danger); padding: 10px 14px; margin: 10px 0 16px; }
.attack-results:empty { display: none; }
.attack-results { margin: 8px 0 16px; }
.attack-pager { display: flex; gap: 16px; align-items: center; margin: 16px 0; }
.attack-refs { font-size: 0.8rem; color: var(--muted); }
.attack-refs li { word-break: break-word; }
sup.cite a { text-decoration: none; font-size: 0.7em; }
.attack-notice { border-top: 1px solid var(--hair); margin-top: 32px; padding-top: 12px; font-size: 0.8rem; }
