.td-search-box { display: flex; gap: var(--space-2); margin-bottom: var(--space-2); }
.td-search-input {
  flex: 1; padding: var(--space-3); font-size: 1.1rem; border: 1px solid var(--color-border);
  border-radius: var(--radius-sm); font-family: "Noto Sans SC", sans-serif;
}

.td-group { margin-bottom: var(--space-5); }
.td-group__title { font-size: var(--font-size-lg); margin-bottom: var(--space-2); }
.td-group__count { color: var(--color-text-muted); font-weight: 400; font-size: var(--font-size-sm); }
.td-group__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: var(--space-2); }
.td-group__more { color: var(--color-text-muted); font-size: var(--font-size-sm); margin-top: var(--space-2); }

.td-card {
  display: flex; align-items: center; gap: var(--space-2); padding: var(--space-2) var(--space-3);
  background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md);
  text-decoration: none; color: inherit; position: relative;
}
.td-card--hanzi .td-card__hanzi { font-size: 2rem; font-family: "Noto Sans SC", sans-serif; min-width: 48px; text-align: center; }
.td-card--hanzi .td-card__hanzi--sm { font-size: 1.4rem; }
.td-card__info { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.td-card__info strong { font-family: var(--font-family-mono); }
.td-card__info span { color: var(--color-text-muted); font-size: var(--font-size-sm); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.td-card__level { font-size: var(--font-size-xs); color: var(--color-primary); font-weight: 700; white-space: nowrap; }

.td-card--sentence { flex-direction: column; align-items: flex-start; gap: 4px; }
.td-card__sentence-hanzi { font-family: "Noto Sans SC", sans-serif; font-size: 1.1rem; }
.td-card__sentence-pinyin { color: var(--color-primary); font-size: var(--font-size-sm); font-family: var(--font-family-mono); }
.td-card__sentence-meaning { color: var(--color-text-muted); font-size: var(--font-size-sm); }

.td-card--course { flex-direction: column; align-items: flex-start; gap: 4px; }
.td-card--course span { color: var(--color-text-muted); font-size: var(--font-size-sm); }

@media (max-width: 480px) {
  .td-search-box { flex-direction: column; }
  .td-group__list { grid-template-columns: 1fr; }
}
