/* Billing panel — scoped to the framework panel body. */

.pf-panel #pf-billing-body .billing-view {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* ── Balance card ── */
.pf-panel #pf-billing-body .billing-balance-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 16px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
}

.pf-panel #pf-billing-body .billing-balance-left {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.pf-panel #pf-billing-body .billing-balance-amount {
  font-size: 32px;
  font-weight: 700;
  line-height: 1.1;
  color: var(--text);
}

.pf-panel #pf-billing-body .billing-balance-amount.billing-balance-low {
  color: var(--warning);
}

.pf-panel #pf-billing-body .billing-balance-amount.billing-balance-empty {
  color: var(--danger);
}

.pf-panel #pf-billing-body .billing-balance-sub {
  font-size: 12px;
  color: var(--text-dim);
}

.pf-panel #pf-billing-body .billing-balance-left .ou-badge {
  align-self: flex-start;
  margin-top: 2px;
}

.pf-panel #pf-billing-body .billing-balance-actions {
  display: flex;
  gap: 8px;
}

/* ── Two-column provider/source tables ── */
.pf-panel #pf-billing-body .billing-two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

@container (max-width: 560px) {
  .pf-panel #pf-billing-body .billing-two-col {
    grid-template-columns: 1fr;
  }
}

/* ── Mini list (by day) — rows are OscarUI.listItem ── */
.pf-panel #pf-billing-body .billing-mini-list {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
}

.pf-panel #pf-billing-body .billing-mini-right {
  font-size: var(--fs-sm);
  color: var(--text-dim);
  white-space: nowrap;
}

.pf-panel #pf-billing-body .billing-unpriced-badge {
  margin-left: 6px;
}

/* ── Settings ── */
.pf-panel #pf-billing-body .billing-settings {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
}

.pf-panel #pf-billing-body .billing-warning {
  font-size: 12px;
  color: var(--warning);
}

.pf-panel #pf-billing-body .billing-settings-save {
  display: flex;
  justify-content: flex-end;
}

/* ── Prices view (header is OscarUI.subHeader) ── */
.pf-panel #pf-billing-body .billing-hint {
  font-size: 12px;
  color: var(--text-dim);
}

.pf-panel #pf-billing-body .billing-price-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.pf-panel #pf-billing-body .billing-price-row {
  display: grid;
  grid-template-columns: 1fr 1.4fr 1fr 0.9fr auto;
  gap: 6px;
  align-items: center;
}

.pf-panel #pf-billing-body .billing-price-header {
  font-size: 11px;
  font-weight: 600;
  color: var(--text-dim);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 2px 0;
}

.pf-panel #pf-billing-body .billing-price-input,
.pf-panel #pf-billing-body .billing-price-unit {
  width: 100%;
  min-width: 0;
  font-size: 12px;
}

/* active = OscarUI.formGroup checkbox; neutralize its block margin so it sits
   aligned in the price-row grid cell. */
.pf-panel #pf-billing-body .billing-price-active {
  margin-bottom: 0;
  align-self: center;
}
.pf-panel #pf-billing-body .billing-price-active .ou-checkbox {
  font-size: var(--fs-sm);
  white-space: nowrap;
}

.pf-panel #pf-billing-body .billing-price-actions {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-top: 4px;
}

/* Identity fields of existing price rows are read-only (upsert key) */
.billing-price-locked { opacity: 0.6; cursor: not-allowed; }
