.billing-grid,.invoice-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(18rem,.7fr);gap:1.25rem;align-items:start}.inline-filter,.report-filter{display:flex;gap:1rem;align-items:end;margin-bottom:1.25rem}.inline-filter label{min-width:min(100%,24rem)}.payment-method-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem;margin-top:1.25rem}.payment-method{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem}.security-note{border-left:4px solid #16a34a}.invoice-sheet header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.invoice-sheet table{width:100%;margin-top:1.5rem}.invoice-totals{max-width:22rem;margin:1.5rem 0 0 auto}.invoice-totals div,.report-definition div{display:flex;justify-content:space-between;gap:1rem;padding:.4rem 0}.invoice-totals .balance{margin-top:.4rem;padding-top:.7rem;border-top:2px solid #0f172a;font-size:1.15rem;font-weight:700}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:1rem;margin:1.25rem 0}.metric-grid article{padding:1rem;border:1px solid #e2e8f0;border-radius:.75rem;background:#fff}.metric-grid span{display:block;color:#64748b}.metric-grid strong{display:block;margin-top:.35rem;font-size:1.4rem}.metric-danger{border-color:#fecaca!important;background:#fff7f7!important}.metric-danger strong{color:#b91c1c}.bar-chart>div{display:grid;grid-template-columns:5rem minmax(4rem,1fr) 6rem;gap:.75rem;align-items:center;margin:.75rem 0}.bar-chart progress{width:100%;accent-color:#4f46e5}.gateway-page{display:grid;min-height:100vh;place-items:center;padding:1.5rem}.gateway-page form{max-width:30rem}.badge-open,.badge-processing,.badge-pending{background:#fef3c7;color:#92400e}.badge-paid,.badge-succeeded,.badge-active{background:#dcfce7;color:#166534}.badge-past_due,.badge-failed,.badge-expired{background:#fee2e2;color:#991b1b}.badge-partially_paid,.badge-paused{background:#dbeafe;color:#1e40af}@media(max-width:800px){.billing-grid,.invoice-layout{grid-template-columns:1fr}.inline-filter,.report-filter{align-items:stretch;flex-direction:column}.bar-chart>div{grid-template-columns:4rem 1fr 5rem}}

/* Cuotas de alumnos — tarjetas de plan (rejilla propia, no hereda de .class-card) */
.plan-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(15.5rem,1fr));gap:1.1rem;margin-top:1.25rem;align-items:stretch}
.plan-cards .empty-state{grid-column:1/-1}
.plan-card{display:flex;flex-direction:column;gap:.85rem;height:100%;border:1px solid #e6e8f0;border-radius:.9rem;background:#fff;padding:1.3rem 1.3rem 1.15rem;box-shadow:0 1px 2px rgba(15,23,42,.06);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.plan-card:hover{transform:translateY(-2px);border-color:#c7ccff;box-shadow:0 16px 30px -18px rgba(15,23,42,.35)}
.plan-card.is-inactive{background:#fbfbfd}
.plan-card.is-inactive .plan-card__amount{color:#64748b}
.plan-card__name{margin:.15rem 0 0;font-size:1.15rem;line-height:1.25;letter-spacing:-.01em;color:#0f172a}
.plan-card__price{display:flex;align-items:baseline;flex-wrap:wrap;gap:.45rem;margin:.55rem 0 0}
.plan-card__amount{font-size:1.5rem;font-weight:800;letter-spacing:-.02em;color:#0f172a}
.plan-card__discount{font-size:.78rem;font-weight:700;color:#166534;background:#dcfce7;border-radius:999px;padding:.12rem .5rem;white-space:nowrap}
.plan-meta{margin:0;display:grid;gap:0}
.plan-meta div{display:flex;justify-content:space-between;gap:1rem;padding:.4rem 0;border-top:1px solid #f1f5f9}
.plan-meta dt{color:#64748b;font-size:.9rem}
.plan-meta dd{margin:0;text-align:right;font-weight:600;font-size:.9rem;color:#334155}
.plan-card__actions{display:flex;align-items:center;gap:1.1rem;margin-top:auto;padding-top:.35rem}
.plan-card__actions form{margin:0}
.plan-card__actions .link{font-weight:600}
/* Suscripción de la academia (plan con la plataforma) */
.plan-card.is-current{border-color:#4f46e5;box-shadow:inset 0 0 0 1px #4f46e5}
.plan-card__badge{display:inline-flex;align-items:center;margin-bottom:.5rem;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#3730a3;background:#e0e7ff;border-radius:999px;padding:.16rem .55rem}
.plan-card__period{font-size:.9rem;font-weight:600;color:#64748b}
.plan-card__note{margin:.15rem 0 0;font-size:.88rem;color:#64748b}
.plan-card__note.small{font-size:.82rem}
.plan-card__cta{display:grid;gap:.5rem;margin-top:auto}
.plan-card__cta form{margin:0}
.plan-card__cta .btn-primary,.plan-card__cta .btn-secondary{width:100%}
.usage-card{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.25rem}
.usage-card__count{font-size:1.9rem;font-weight:800;letter-spacing:-.02em;color:#0f172a;margin:.1rem 0}
/* Pasarelas de cobro */
.gateway-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(20rem,1fr));gap:1.25rem;margin-top:1.25rem;align-items:start}
.gateway-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.gateway-head h2{margin:0}
.checkbox-row{display:flex;align-items:center;gap:.5rem}
.hint{color:#64748b;font-size:.85rem;margin:.4rem 0 0}
.hint code{background:rgba(15,23,42,.06);padding:.05rem .3rem;border-radius:5px;word-break:break-all}
