/**
 * Переключатель источника списания (ТЗ 12).
 *
 * Показывается в форме нейросети и в переписке. Выбранный вариант
 * помечен состоянием, а не отдельным классом-цветом: состояние
 * живёт в aria-checked, оформление следует за ним.
 */
.spend {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--s2);
  margin-top: var(--s3);
  font-size: 12.5px;
}

.spend__lab {
  color: var(--tx2);
}

/* Переключатель не шире формы. Имя владельца чужого баланса бывает
   длинным — «Баланс Константина Константинопольского», — и раньше
   оно раздвигало форму за край. Теперь кнопки делят ширину, а не
   влезающее имя обрезается многоточием; полностью оно — в подсказке. */
.spend__opts {
  display: inline-flex;
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
  padding: 2px;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  background: var(--surface2);
}

.spend__opt {
  flex: 0 1 auto;
  min-width: 0;
  padding: 5px 10px;
  border: 0;
  border-radius: calc(var(--r-sm) - 2px);
  background: none;
  color: var(--tx2);
  font: inherit;
  cursor: pointer;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.spend__opt:hover:not(.is-on) {
  color: var(--tx);
}

.spend__opt.is-on {
  background: var(--surface);
  color: var(--tx);
  font-weight: 600;
}

.spend__opt[disabled] {
  opacity: .6;
  cursor: default;
}

/* Причина, по которой выбранный баланс недоступен, занимает
   всю строку: это не подпись к кнопке, а объяснение отказа. */
.spend__err {
  flex: 1 0 100%;
  margin: 0;
  color: var(--err);
  line-height: 1.5;
}

/* Просьба владельцу — действие внутри объяснения отказа,
   поэтому оформлена ссылкой, а не ещё одной кнопкой. */
.spend__ask {
  padding: 0;
  border: 0;
  background: none;
  color: var(--acc);
  font: inherit;
  text-decoration: underline;
  cursor: pointer;
}

.spend__ask[disabled] {
  color: var(--tx2);
  text-decoration: none;
  cursor: default;
}
