/* Wallet chip, the balance & subscription modal, and the payment explainer.

   The dialog is sized so "Recent activity" gets the room: /me/wallet returns 20
   ledger entries, and the balance, plan cards and usage line above it are all
   deliberately compact so most of those 20 are visible without scrolling. */

.wallet-chip {
  display: inline-flex; align-items: center; gap: 8px; flex: 0 0 auto;
  background: var(--panel2); color: var(--text); border: 1px solid var(--border);
  border-radius: 999px; padding: 5px 12px; font-weight: 600; font-size: 13px;
}
.wallet-chip:hover { border-color: color-mix(in srgb, var(--accent) 45%, var(--border)); }
.tier-tag { font-size: 11px; text-transform: uppercase; letter-spacing: .5px; border-radius: 999px; padding: 1px 8px; border: 1px solid var(--border); color: var(--muted); }
.tier-tag.basic { color: #e6edf3; border-color: color-mix(in srgb, var(--accent) 55%, var(--border)); }
.tier-tag.premium { color: #fff; background: color-mix(in srgb, var(--accent) 40%, var(--panel2)); border-color: var(--accent); }

.billing-dialog { width: min(680px, 96vw); max-height: 92vh; overflow-y: auto; }
.plan-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media (max-width: 560px) { .plan-grid { grid-template-columns: 1fr; } }
.plan-card, .pack-row {
  background: var(--panel2); border: 1px solid var(--border); border-radius: 12px; padding: 10px 12px;
  display: flex; flex-direction: column; gap: 8px;
}
.plan-card.current { border-color: var(--accent2); }
.plan-card .price { font-size: 18px; font-weight: 700; }
.plan-card .price small { font-size: 12px; font-weight: 500; color: var(--muted); }
.pack-row { flex-direction: row; align-items: center; justify-content: space-between; }
.balance-big { font-size: 26px; font-weight: 700; line-height: 1; }

.ledger { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; max-height: 360px; overflow-y: auto; }
.ledger li { display: flex; justify-content: space-between; gap: 8px; font-size: 13px; padding: 5px 0; border-bottom: 1px solid var(--border); }
.ledger .when { color: var(--muted); font-size: 12px; }
.ledger .pos { color: var(--accent2); font-weight: 600; margin-right: 6px; }
.ledger .neg { color: var(--muted); margin-right: 6px; }

.billing-note { background: color-mix(in srgb, #e3b341 16%, var(--panel2)); border: 1px solid color-mix(in srgb, #e3b341 45%, var(--border)); border-radius: 8px; padding: 8px 11px; font-size: 13px; }
/* Payment confirmed / still settling — same shape, different signal colour. */
.billing-note.ok { background: color-mix(in srgb, var(--accent2) 16%, var(--panel2)); border-color: color-mix(in srgb, var(--accent2) 45%, var(--border)); }
.billing-note.busy { background: var(--panel2); border-color: var(--border); color: var(--muted); }

/* --- Payment onboarding --- */
.onboard-dialog { width: min(560px, 94vw); max-height: 90vh; overflow-y: auto; }
.onboard-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.onboard-steps li { display: flex; gap: 12px; align-items: flex-start; }
.onboard-steps .ico {
  flex: 0 0 30px; height: 30px; border-radius: 50%; display: grid; place-items: center;
  background: var(--panel2); border: 1px solid var(--border); font-size: 15px;
}
.onboard-steps b { display: block; }
.onboard-steps p { margin: 2px 0 0; color: var(--muted); font-size: 13px; }
.link-btn { background: none; border: none; padding: 0; color: var(--accent); font: inherit; font-size: 12px; font-weight: 500; cursor: pointer; text-decoration: underline; }
