/* ============================================================
   Category tabs — horizontal pill row, scrollable on overflow.
   Each tab takes its category color when pressed.
   ============================================================ */

.tabs {
  display: flex;
  gap: var(--space-2);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding: var(--space-1) 0;
}

.tabs::-webkit-scrollbar {
  display: none;
}

.tab {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  height: 34px;
  padding: 0 var(--space-3);
  background: var(--color-surface);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-full);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-text-secondary);
  white-space: nowrap;
  box-shadow: var(--shadow-sm);
  transition:
    background-color var(--duration-fast) var(--easing-standard),
    color var(--duration-fast) var(--easing-standard),
    border-color var(--duration-fast) var(--easing-standard),
    box-shadow var(--duration-fast) var(--easing-standard);
}

.tab:hover {
  border-color: var(--color-border-default);
}

.tab[aria-pressed="true"] {
  background: var(--tab-active-bg, var(--color-text-primary));
  color: var(--color-text-on-brand);
  border-color: var(--tab-active-bg, var(--color-text-primary));
  box-shadow: var(--shadow-md);
}

/* Tab active color = category color (via data-cat utility in tokens.css) */
.tab[data-cat] { --tab-active-bg: var(--cat-color, var(--color-text-primary)); }

/* Icon (fixed) + label (translates). Icon keeps its outline at all states. */
.tab__icon {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.tab__label {
  white-space: nowrap;
}
