/* Stage 3D-2: financial summaries and control, scoped to billing components. */
.billing-summary { min-width: 0; margin: 1.25rem 0; }
.billing-summary h2, .billing-group-card h2, .billing-object-accruals h2 { font-size: 1.05rem; margin: 0 0 .4rem; }
.billing-summary-heading { margin-bottom: .8rem; }
.billing-summary-heading p { margin: 0; font-size: .875rem; }
.billing-summary-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
.billing-calendar-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.billing-summary .metric-card { min-width: 0; gap: .65rem; }
.billing-summary .metric-card strong { font-size: clamp(1.4rem, 2.2vw, 2rem); line-height: 1.15; overflow-wrap: anywhere; }
.billing-summary-counts { display: flex; flex-wrap: wrap; gap: .45rem 1.5rem; margin-top: .75rem; color: var(--color-text-secondary); font-size: .85rem; }
.billing-summary-counts strong { color: var(--color-text-primary); }
.billing-incomplete { margin: .85rem 0; padding: .75rem 1rem; border: 1px solid #eddaa6; border-radius: var(--radius-md); background: #fffbef; color: #775a20; overflow-wrap: anywhere; }
.billing-filter > *, .billing-filter input, .billing-filter select { min-width: 0; max-width: 100%; }
.billing-filter-errors { grid-column: 1 / -1; }
.billing-filter-errors, .billing-field-errors { color: var(--color-danger, #b42318); font-size: .875rem; }
.billing-field-errors ul, .billing-filter-errors ul { margin: .35rem 0; padding-left: 1.2rem; }
.billing-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1.25rem; }
.billing-group-card { min-width: 0; padding: 1rem; }
.billing-group-card > p { font-size: .85rem; }
.billing-group-list { margin: 0; padding: 0; list-style: none; }
.billing-group-list li { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: 1rem; padding: .65rem 0; border-top: 1px solid var(--color-border); }
.billing-group-list a, .billing-group-list div, .billing-group-list strong, .billing-group-list small { min-width: 0; overflow-wrap: anywhere; }
.billing-group-list strong, .billing-group-list small { display: block; }
.billing-group-list small { color: var(--color-text-secondary); font-size: .8rem; margin-top: .2rem; }
.billing-pagination { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: .75rem; margin: 1rem 0; font-size: .875rem; }
.billing-pagination-links, .billing-control-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; min-width: 0; }
.billing-page-current { padding: .5rem .75rem; white-space: nowrap; }
.billing-object-accruals { min-width: 0; padding: 1.25rem; margin-top: 1.25rem; }
.billing-object-accruals > .btn { margin-top: .85rem; white-space: normal; }
.billing-table-wrap { max-width: 100%; min-width: 0; overflow-x: auto; }
.billing-table { width: 100%; }
.billing-table td, .billing-table th { overflow-wrap: anywhere; }
.billing-table td > * { max-width: 100%; }
.billing-control-list { display: grid; gap: 1rem; min-width: 0; }
.billing-control-row { min-width: 0; padding: 1.1rem; }
.billing-control-row h2, .billing-control-row h3 { font-size: 1.05rem; }
.billing-control-source, .billing-control-source a { min-width: 0; overflow-wrap: anywhere; word-break: break-word; }
.billing-control-facts { display: grid; grid-template-columns: minmax(120px, .7fr) minmax(0, 1.3fr); gap: .5rem 1rem; margin: 1rem 0; }
.billing-control-facts dt { color: var(--color-text-secondary); font-weight: 500; }
.billing-control-facts dd { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.billing-control-actions .btn { white-space: normal; }
.billing-control-components { min-width: 0; max-width: 100%; }
@media (max-width: 900px) {
  .billing-groups { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .billing-summary-grid, .billing-calendar-grid { grid-template-columns: 1fr; }
  .billing-summary .metric-card { min-height: 95px; }
  .billing-group-list li { grid-template-columns: 1fr; gap: .3rem; }
  .billing-table-wrap { overflow: visible; }
  .billing-table { min-width: 0 !important; }
  .billing-table thead { display: none; }
  .billing-table, .billing-table tbody, .billing-table tr, .billing-table td { display: block; width: 100%; min-width: 0; }
  .billing-table tr { padding: .85rem; border-bottom: 1px solid var(--color-border); }
  .billing-table td { display: grid; grid-template-columns: minmax(90px, .75fr) minmax(0, 1.25fr); gap: .65rem; padding: .35rem 0; border: 0; text-align: left !important; overflow-wrap: anywhere; white-space: normal; }
  .billing-table td::before { content: attr(data-label); color: var(--color-text-secondary); font-size: .8rem; }
  .billing-table td > * { min-width: 0; overflow-wrap: anywhere; white-space: normal; }
  .billing-table .billing-empty-row td { display: block; }
  .billing-table .billing-empty-row td::before { display: none; }
  .billing-table .status { white-space: normal; }
  .billing-control-facts { grid-template-columns: 1fr; gap: .2rem; }
  .billing-control-facts dd { margin-bottom: .6rem; }
  .billing-object-accruals { padding: .85rem; }
  .billing-pagination-links { width: 100%; justify-content: space-between; }
}
