
/* Vendor billing portal */
.billing-page{padding:32px 0 80px}
.billing-header{margin-bottom:28px}
.billing-header h1{font-size:clamp(28px,5vw,42px);margin:0 0 8px}
.billing-header p{margin:0;color:var(--muted);font-size:16px}
.billing-stack{display:grid;gap:20px;max-width:920px;margin:0 auto}
.billing-banner{
  padding:14px 16px;border-radius:16px;
  background:rgba(244,204,105,.10);border:1px solid var(--line);
  color:#e8edf0;font-size:14px;font-weight:800;line-height:1.5
}
.billing-banner.warn{background:rgba(255,121,121,.10);border-color:rgba(255,121,121,.45);color:#ffe0e0}
.billing-card{
  background:rgba(18,26,31,.92);border:1px solid var(--line);
  border-radius:22px;padding:22px 24px
}
.billing-card h2{margin:0 0 14px;font-size:22px;color:var(--gold)}
.billing-card h3{margin:0 0 8px;font-size:18px}
.billing-muted{color:var(--muted);font-size:14px}
.billing-gold{color:var(--gold);font-weight:900}
.billing-limits{font-size:13px;color:#c5cdd2;margin-top:6px}
.plan-list{display:grid;gap:10px;margin-top:8px}
.plan-tile{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;
  padding:16px 18px;border-radius:16px;background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08)
}
.plan-tile.current{border-color:var(--gold);box-shadow:0 0 0 1px rgba(244,204,105,.25)}
.plan-tile-title{font-weight:1000;font-size:17px}
.plan-tile-sub{font-size:13px;color:var(--muted);margin-top:4px}
.plan-badge{font-size:12px;font-weight:1000;color:var(--gold)}
.slot-list{display:grid;gap:8px;margin-top:8px}
.slot-row{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.04);font-size:14px}
.slot-ok{color:var(--green);font-weight:900}
.slot-full{color:var(--danger);font-weight:900}
.pay-section{display:grid;gap:14px;margin-top:8px}
.pay-plan-select{
  width:100%;min-height:48px;padding:0 14px;border-radius:12px;
  border:1px solid var(--line);background:#0f1418;color:var(--text);
  font-size:15px;font-weight:800
}
.btn.pay{width:100%;font-size:16px}
.btn.pay:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
.payments-table{width:100%;border-collapse:collapse;font-size:14px}
.payments-table th,.payments-table td{padding:10px 8px;border-bottom:1px solid rgba(255,255,255,.08);text-align:left}
.payments-table th{color:var(--gold);font-size:13px}
.status-paid{color:var(--green);font-weight:900}
.status-ready,.status-failed,.status-canceled,.status-refunded{color:var(--muted);font-weight:800}
.legal{font-size:13px;color:var(--muted);line-height:1.7}
.legal a{color:var(--gold);font-weight:800}
.billing-empty,.billing-error,.billing-loading{
  text-align:center;padding:48px 20px;color:var(--muted)
}
.billing-error{color:#ffb4b4}
.billing-spinner{
  width:36px;height:36px;margin:0 auto 16px;border-radius:50%;
  border:3px solid rgba(244,204,105,.2);border-top-color:var(--gold);
  animation:billing-spin .8s linear infinite
}
@keyframes billing-spin{to{transform:rotate(360deg)}}
@media(max-width:540px){
  .billing-page{padding:24px 0 64px}
  .plan-tile{flex-direction:column;align-items:flex-start}
  .payments-table{font-size:12px}
}
