/* /widgets/word-ban — paste any AI output, see your refusals lit up */

.wban-intro {
  padding-block: var(--space-6);
  border-bottom: 1px solid var(--border);
}

.wban-intro h1 {
  margin: 0 0 var(--space-3);
}

.wban-intro__lede {
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  line-height: 1.3;
  max-width: 50ch;
  color: var(--fg-soft);
}

.wban {
  padding-block: var(--space-5);
}

.wban__layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-4);
}

@media (min-width: 880px) {
  .wban__layout {
    grid-template-columns: minmax(0, 1fr) minmax(18rem, 22rem);
    align-items: start;
  }
}

.wban__panel h2 {
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--accent);
  margin: 0 0 var(--space-2);
}

.wban__textarea {
  min-height: 18rem;
  font-family: var(--font-mono);
  font-size: var(--fs-md);
  line-height: 1.55;
}

.wban__output {
  position: relative;
  min-height: 18rem;
  background: var(--bg-elevated);
  border: 2px solid var(--accent);
  padding: var(--space-3) var(--space-4);
  font-family: var(--font-mono);
  font-size: var(--fs-md);
  line-height: 1.65;
  color: var(--fg-soft);
  white-space: pre-wrap;
  word-break: break-word;
}

.wban__output:empty::before {
  content: "Paste anything. Hit scan. Watch your style guide light up the cliché.";
  font-family: var(--font-display);
  font-style: italic;
  color: var(--muted);
}

.wban__output mark {
  background: rgba(225, 29, 46, 0.18);
  color: var(--fg);
  padding: 0 0.2em;
  border-bottom: 2px solid var(--accent);
  border-radius: 0;
}

.wban__output mark[data-source="custom"] {
  background: rgba(225, 29, 46, 0.32);
  border-bottom-style: dashed;
}

.wban__counts {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr));
  gap: var(--space-2);
  margin: var(--space-3) 0;
}

.wban__count {
  background: var(--bg);
  border: 1px solid var(--border);
  border-left: 3px solid var(--accent);
  padding: var(--space-2) var(--space-3);
}

.wban__count strong {
  display: block;
  font-family: var(--font-display);
  font-size: var(--fs-xl);
  color: var(--accent);
  line-height: 1;
}

.wban__count span {
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--muted);
}

.wban__hits {
  margin-top: var(--space-3);
}

.wban__hits h3 {
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--accent);
  margin: 0 0 var(--space-2);
}

.wban__hit-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
}

.wban__hit {
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  letter-spacing: 0.04em;
  padding: 0.2rem 0.5rem;
  background: rgba(225, 29, 46, 0.12);
  border: 1px solid var(--accent);
  color: var(--fg);
}

.wban__hit-count {
  color: var(--accent);
  margin-left: 0.4rem;
}

/* SIDEBAR — ban list editor */

.wban__sidebar {
  display: grid;
  gap: var(--space-3);
}

.wban__presets {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  padding: var(--space-3);
}

.wban__presets h2 {
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--accent);
  margin: 0 0 var(--space-2);
}

.wban__presets-help {
  font-size: var(--fs-sm);
  color: var(--fg-soft);
  margin: 0 0 var(--space-2);
}

.wban__select {
  flex: 1 1 12rem;
  font-family: var(--font-mono);
  font-size: var(--fs-sm);
  background: var(--bg);
  border: 1px solid var(--border);
  color: var(--fg);
  padding: 0.4rem 0.5rem;
}

.wban__row--tight {
  margin-top: 0;
}

.wban__preset-blurb {
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  letter-spacing: 0.04em;
  color: var(--muted);
  margin-top: var(--space-2);
  min-height: 1em;
}

.wban__list {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  padding: var(--space-3);
}

.wban__list h2 {
  margin-bottom: var(--space-2);
}

.wban__list textarea {
  min-height: 9rem;
  font-family: var(--font-mono);
  font-size: var(--fs-sm);
  line-height: 1.45;
}

.wban__list-meta {
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--muted);
  margin-top: var(--space-2);
}

.wban__defaults {
  border: 1px dashed var(--border-strong);
  padding: var(--space-3);
  font-size: var(--fs-sm);
  color: var(--fg-soft);
}

.wban__defaults h2 {
  margin-bottom: var(--space-2);
}

.wban__defaults code {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  font-size: 0.92em;
  padding: 0 0.25em;
  color: var(--accent);
}

.wban__row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-top: var(--space-3);
}

.wban__status {
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--accent);
  min-height: 1em;
}

/* HISTORY + DIFF */

.wban__history {
  margin-top: var(--space-4);
  border-top: 1px solid var(--border);
  padding-top: var(--space-3);
}

.wban__history-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-2);
}

.wban__history h3 {
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--accent);
  margin: 0 0 var(--space-2);
}

.wban__history-meta {
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--muted);
  margin: 0 0 var(--space-2);
}

.wban__sparkline {
  display: block;
  width: 100%;
  height: 40px;
  margin-bottom: var(--space-2);
  color: var(--accent);
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  padding: 2px;
}

.wban__history-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 2px;
}

.wban__history-item {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
}

.wban__history-row {
  display: grid;
  grid-template-columns: auto auto auto auto auto 1fr;
  align-items: center;
  gap: var(--space-2);
  padding: 0.4rem 0.6rem;
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  cursor: pointer;
}

.wban__history-when {
  color: var(--fg);
  letter-spacing: 0.04em;
}

.wban__history-rate {
  color: var(--accent);
  font-weight: 700;
  min-width: 3.5em;
}

.wban__history-counts {
  color: var(--muted);
}

.wban__history-hash {
  color: var(--muted);
  background: var(--bg);
  border: 1px solid var(--border);
  padding: 0 0.3em;
  font-size: 0.92em;
}

.wban__history-preview {
  color: var(--fg-soft);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.wban__diff {
  margin-top: var(--space-3);
  border: 1px solid var(--accent);
  padding: var(--space-3);
}

.wban__diff h3 {
  margin-bottom: var(--space-2);
}

.wban__diff-meta {
  color: var(--muted);
  font-weight: 400;
  letter-spacing: 0.08em;
  margin-left: var(--space-2);
}

.wban__diff-cols {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-3);
}

@media (min-width: 640px) {
  .wban__diff-cols {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.wban__diff-col h4 {
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--fg-soft);
  margin: 0 0 var(--space-1);
}

.wban__diff-col h4 span {
  color: var(--accent);
  margin-left: 0.4em;
}

.wban__diff-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
}

.wban__diff-list li {
  padding: 0.2rem 0.5rem;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
}

.wban__diff-list .wban__diff-empty {
  color: var(--muted);
  background: transparent;
  border: 1px dashed var(--border);
}
