/* Keyword density checker: clickable phrases, sortable headers, highlighted text. */
.kd-sort { all: unset; cursor: pointer; display: inline-flex; gap: 4px; align-items: center; font-weight: 700; }
.kd-sort:focus-visible, .kd-phrase:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 4px; }
.kd-sort span { font-size: 0.7rem; color: var(--accent-ink); }
.kd-phrase { all: unset; cursor: pointer; color: var(--accent-ink); font-weight: 600; overflow-wrap: anywhere; }
.kd-phrase:hover { text-decoration: underline; }
tr.kd-on td { background: var(--accent-soft); }
.kd-table-wrap { max-height: 420px; overflow: auto; }
.kd-text { max-height: 420px; overflow: auto; font-family: var(--font); font-size: 0.95rem; white-space: pre-wrap; }
.kd-checks { list-style: none; padding: 0; margin: 10px 0 6px; display: grid; gap: 4px; }
:root[data-theme='dark'] .kd-phrase, :root[data-theme='dark'] .kd-sort span { color: #b4abff; }
#tool .grid-2 > .stack-sm, #tool .grid-2 > .stack, .tc-top > .stack-sm { align-content: start; }
