.villain-panel { display: flex; flex-direction: column; gap: var(--space-3); }

.preset-bar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
}
.btn--sm {
  padding: 4px 10px;
  font-size: 12px;
}
.btn--active {
  background: var(--cobalt-700);
  color: white;
}
.btn--active.btn--ghost {
  background: var(--cobalt-700);
  color: white;
}

.range-stats {
  font-size: 13px;
  color: var(--text);
  padding: var(--space-2) var(--space-3);
  background: var(--bg);
  border-radius: var(--radius-sm);
}
.range-stats strong {
  font-family: var(--font-heading);
  font-size: 15px;
}
.range-stats__empty { color: var(--text-muted); font-style: italic; }

.range-grid {
  display: grid;
  grid-template-columns: repeat(13, 1fr);
  grid-template-rows: repeat(13, 1fr);
  gap: 1px;
  padding: 2px;
  background: var(--border);
  border-radius: var(--radius-sm);
  aspect-ratio: 1;
  max-width: 440px;
}
.range-cell {
  font-family: var(--font-heading);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: -0.02em;
  background: white;
  border: none;
  cursor: pointer;
  user-select: none;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 80ms, color 80ms, transform 80ms;
  color: var(--text);
  padding: 0;
  min-width: 0;
  min-height: 0;
}
.range-cell--pp { background: var(--cobalt-100); color: var(--cobalt-900); }
.range-cell--s  { background: #fff8c5; color: #6a5800; }
.range-cell--o  { background: #f1f3f7; color: var(--text-muted); }
.range-cell:hover { transform: scale(1.08); z-index: 1; box-shadow: var(--shadow-sm); }
.range-cell--selected {
  background: var(--cobalt-700);
  color: white;
}
.range-cell--selected.range-cell--pp { background: var(--cobalt-900); color: var(--canary-500); }
.range-cell--selected.range-cell--s  { background: #b8841e; color: white; }
.range-cell--selected.range-cell--o  { background: var(--cobalt-500); color: white; }
