/* .cab- · B7 · баланс і поповнення (N8-B, N9-A), класи .cab-bal- і .cab-tu-. Розміри — Референс #N8 «Баланс»,
 * «Нуль», «Банер повернення», «Незавершене», «Тайли», «Своя сума», «Відправка».
 */

.cab-bal {
  display: flex;
  flex-direction: column;
  gap: 32px;
  min-width: 0;
  padding: 0 0 48px;
}

.cab-bal__title {
  margin: 0;
}

/* Банер повернення: рамка --ink, ромб --accent. */
.cab-bal__return {
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 14px 16px;
  border: 1px solid var(--edge-strong);
  border-radius: var(--r-14);
  background: var(--card);
  font: 400 13.5px / 1.5 var(--f-ui);
}

.cab-bal__diamond {
  flex: none;
  width: 8px;
  height: 8px;
  background: var(--accent);
  transform: translateY(-1px) rotate(45deg);
}

/* Баланс великим числом і факти праворуч. */
.cab-bal__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px 40px;
}

.cab-bal__now {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.cab-bal__amount {
  display: flex;
  align-items: baseline;
  gap: 14px;
}

.cab-bal__num {
  font: 200 148px / 0.9 var(--f-display);
  letter-spacing: calc(-0.06em + var(--trk-display));
  font-variant-numeric: tabular-nums;
}

.cab-bal__word {
  color: var(--muted);
  font: 400 14px / 1 var(--f-mono);
}

.cab-bal__facts {
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-width: 360px;
  color: var(--ink-2);
  font: 400 12.5px / 1.5 var(--f-mono);
}

.cab-bal__muted {
  color: var(--muted);
}

.cab-bal__zero {
  margin: -12px 0 0;
  color: var(--ink-2);
  font: 400 18px / 1.55 var(--f-ui);
}

/* Незавершені поповнення: рядок між лініями. */
.cab-bal__pending {
  display: flex;
  flex-direction: column;
}

.cab-bal__pending-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 20px;
  padding: 14px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.cab-bal__pending-row + .cab-bal__pending-row {
  border-top: 0;
}

.cab-bal__pending-text {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.cab-bal__pending-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font: 500 15px / 1.2 var(--f-ui);
}

.cab-bal__pending-meta {
  color: var(--muted);
  font: 400 11.5px / 1 var(--f-mono);
}

.cab-bal__continue:hover:not(:disabled) {
  background: var(--fill-strong);
  color: var(--on-fill-strong);
}

/* ───── Форма поповнення ───── */

.cab-tu {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.cab-tu__tiles {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
  gap: 10px;
}

.cab-tu__tile {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 14px;
  min-height: 172px;
  padding: 16px 16px 14px;
  border: 1.5px solid var(--line-soft);
  border-radius: var(--r-14);
  background: transparent;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
  transition:
    border-color var(--t-hover),
    background-color var(--t-hover);
}

.cab-tu__tile:hover {
  border-color: var(--edge-strong);
}

.cab-tu__tile[aria-checked="true"] {
  border-color: var(--edge-strong);
  background: var(--paper);
}

.cab-tu__tile--custom {
  gap: 12px;
}

.cab-tu__tile--custom.is-error {
  border-color: var(--danger);
}

.cab-tu__label {
  padding-right: 26px;
  font: 500 14px / 1.3 var(--f-ui);
  overflow-wrap: anywhere;
}

.cab-tu__tile--custom .cab-tu__label {
  padding-right: 0;
}

.cab-tu__check {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--fill-strong);
  color: var(--on-fill-strong);
  font: 500 11px / 20px var(--f-mono);
  text-align: center;
}

.cab-tu__amount {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.cab-tu__num {
  font: 300 40px / 1 var(--f-display);
  letter-spacing: calc(-0.05em + var(--trk-display));
  font-variant-numeric: tabular-nums;
}

.cab-tu__word {
  color: var(--muted);
  font: 400 12px / 1 var(--f-mono);
}

.cab-tu__foot {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-top: 10px;
  border-top: 1px solid var(--line);
  color: var(--ink-2);
  font: 400 11.5px / 1.35 var(--f-mono);
}

.cab-tu__rec {
  color: var(--ink);
}

/* Своя сума: підказка — --muted; коректна сума — --ink; помилка — --danger. */
.cab-tu__tile--custom .cab-tu__foot {
  color: var(--muted);
}

.cab-tu__tile--custom .cab-tu__foot.is-ok {
  color: var(--ink);
}

.cab-tu__tile--custom .cab-tu__foot.is-error {
  color: var(--danger);
}

.cab-tu__field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.cab-tu__input {
  width: 100%;
  height: 44px;
  padding: 0 0 6px;
  border: 0;
  border-bottom: 1.5px solid var(--line-strong);
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  font: 300 32px / 1 var(--f-display);
  letter-spacing: calc(-0.04em + var(--trk-display));
  font-variant-numeric: tabular-nums;
}

.cab-tu__input:focus,
.cab-tu__input:focus-visible {
  outline: none;
}

.cab-tu__tile--custom[aria-checked="true"] .cab-tu__input {
  border-bottom-color: var(--edge-strong);
}

.cab-tu__tile--custom.is-error .cab-tu__input {
  border-bottom-color: var(--danger);
}

.cab-tu__error {
  margin: 0;
  color: var(--danger);
  font: 400 13.5px / 1.5 var(--f-ui);
}

.cab-tu__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 20px;
}

/* Спінер на primary — світлий. */
.cab-tu__spinner {
  border-color: color-mix(in srgb, var(--on-fill-strong) 30%, transparent);
  border-top-color: var(--on-fill-strong);
}

.cab-tu__note {
  color: var(--muted);
  font: 400 12px / 1.4 var(--f-mono);
}

@media (max-width: 1199px) {
  .cab-bal__num {
    font-size: 112px;
  }

  .cab-tu__tiles {
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  }
}
