.chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

.chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 10px;
    border-radius: 999px;
    border: 1px solid var(--border-color);
    background: linear-gradient(180deg, var(--bg), var(--black-200));
    font-size: 12px;
    color: var(--black-1000);
    white-space: nowrap;
}

.chip .dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--black-1000);
    opacity: .9;
}

.chip .tiny {
    width: 5px;
    height: 5px;
    border-radius: 99px;
    background: var(--black-1000);
    opacity: .75;
}

/* Если используешь card-top__main — оставляем как есть */
.card .card-top__main{
    flex: 1 1 auto;
    min-width: 0;
}

/*
  ФИКС:
  - не задаём flex-basis 40% (это и давало “всегда 40%”)
  - используем max-width: 40% как потолок
  - чип по умолчанию шириной по контенту
*/
.card .card-top .chip{
    flex: 0 0 auto;
    max-width: 40%;
    min-width: 0;

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;

    text-align: center;
    justify-content: center;
    align-items: center;
}

/* Цветовые модификаторы оставляем */
.card.accent .chip {
    border-color: var(--black-100);
    background: var(--black-0);
    color: var(--black-900);
}

.card.accent .chip .tiny {
    background: var(--black-900);
    opacity: .9;
}

.section.dark .chip {
    border-color: var(--black-100);
    background: var(--black-100);
    color: var(--black-100);
}