.bsw-ingredient-families { margin-block: var(--rhythm-1); }
.bsw-ingredient-families > summary { cursor: pointer; padding-block: var(--rhythm-1); color: var(--sc-brown); }
.bsw-family { border-block-start: 1px solid var(--sc-line); }
.bsw-family > summary { display: flex; justify-content: space-between; gap: var(--rhythm-1); padding: var(--surface-pad-compact); cursor: pointer; font-family: var(--font-display); font-size: var(--heading-row); font-weight: var(--heading-weight-soft); color: var(--sc-ink); }
.bsw-family > summary::before { content: '+'; }
.bsw-family[open] > summary::before { content: '−'; }
.bsw-family-count { margin-inline-start: auto; font-family: var(--font-ui); font-size: var(--text-3); color: var(--sc-brown); align-self: center; white-space: nowrap; }
.bsw-family-option { display: flex; align-items: center; gap: var(--rhythm-1); min-height: 44px; padding-inline: var(--surface-pad-compact); color: var(--sc-ink); font-family: var(--font-ui); font-size: var(--text-3); cursor: pointer; overflow-wrap: anywhere; }
.bsw-family-option input { flex: 0 0 auto; width: 18px; height: 18px; accent-color: #9B8573; }
.bsw-family-members { max-height: 280px; overflow-y: auto; overscroll-behavior: contain; padding-block-end: var(--rhythm-1); }
.bsw-family summary:focus-visible, .bsw-ingredient-families > summary:focus-visible { outline: 2px solid #C7A977; outline-offset: 2px; }
.bsw-family[hidden] { display: none; }
.bsw-family-chip-count { color: var(--sc-brown); font-size: var(--text-3); font-variant-numeric: tabular-nums; white-space: nowrap; }
