.token-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.token-card {
  padding: 1rem;
  border: 1px solid var(--border-soft);
  border-radius: var(--radius);
  background: var(--card);
}

.token-swatch {
  height: 4rem;
  border-radius: calc(var(--radius) * 0.7);
  border: 1px solid var(--border-soft);
  background: var(--token-preview);
  margin-bottom: 0.8rem;
}

.token-name {
  margin: 0;
  font-weight: 850;
}

.token-value {
  margin: 0.3rem 0 0;
  color: var(--muted);
  font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  font-size: 0.82rem;
  word-break: break-word;
}

.preview-panel {
  padding: 1rem;
  border: 1px solid var(--border-soft);
  border-radius: var(--radius);
  background: var(--card);
}

.component-preview-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.typography-sample {
  display: grid;
  gap: 0.75rem;
}

.typography-sample p {
  margin: 0;
  color: var(--muted);
}

.preview-table-wrap {
  overflow-x: auto;
}

.live-theme-bar {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.65rem;
}

.live-theme-chip {
  min-height: 4rem;
  padding: 0.65rem;
  border-radius: calc(var(--radius) * 0.75);
  border: 1px solid var(--border-soft);
  background: var(--token-preview);
  color: var(--text);
}

@media (max-width: 1100px) {
  .token-grid,
  .live-theme-bar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .token-grid,
  .component-preview-grid,
  .live-theme-bar {
    grid-template-columns: 1fr;
  }
}
