/* Customer billing uses the Console form rhythm and shared action buttons. */
.sb-workspace, .sb-form, .sb-review { display: grid; gap: 20px; min-width: 0; }
.sb-workspace p, .sb-review p { margin: 0; }
.sb-toolbar, .sb-rate-setting, .sb-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.sb-toolbar { justify-content: space-between; }
.sb-toolbar > .btn { flex-shrink: 0; }
.sb-hint { color: var(--o-muted); font-size: 12px; line-height: 1.5; }
.sb-empty { display: grid; gap: 8px; padding: 32px 20px; text-align: center; border: 1px solid var(--o-border-light); border-radius: 8px; background: var(--o-ground); }
.sb-empty > p { color: var(--o-muted); }
.sb-rate-setting { justify-content: space-between; padding-top: 16px; border-top: 1px solid var(--o-border-light); color: var(--o-muted); font-size: 12px; }
.sb-rate-setting strong { color: var(--o-text); font-weight: 500; margin-left: 6px; }
.sb-customer-picker { display: grid; gap: 12px; padding-bottom: 20px; border-bottom: 1px solid var(--o-border-light); min-width: 0; }
.sb-customer-picker > .btn { justify-self: start; }
.sb-customer-picker p { margin: 0; }
.sb-search-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; }
.sb-search-row > .sb-field { grid-column: auto; }
.sb-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.sb-field { display: grid; gap: 6px; min-width: 0; font-size: 13px; }
.sb-field > span { color: var(--o-muted); }
.sb-field > .o_input { width: 100%; min-width: 0; min-height: 36px; }
.sb-wide { grid-column: 1 / -1; }
.sb-total { display: block; padding: 14px 16px; background: var(--o-brand-soft); color: var(--o-text-strong); border-radius: 6px; font-size: 16px; }
.sb-summary { display: grid; gap: 6px; padding-bottom: 16px; border-bottom: 1px solid var(--o-border-light); }
.sb-summary > strong { font-size: 16px; }
.sb-summary > span { color: var(--o-muted); }
.sb-invoice-lines { display: grid; }
.sb-invoice-line { display: grid; grid-template-columns: minmax(0, 1fr) 65px 95px 95px; gap: 12px; align-items: start; padding: 14px 0; border-bottom: 1px solid var(--o-border-light); }
.sb-line-name { white-space: pre-line; overflow-wrap: anywhere; }
.sb-invoice-line > :not(.sb-line-name) { display: grid; gap: 6px; text-align: right; }
.sb-invoice-line small { color: var(--o-muted); font-size: 11px; font-weight: 400; }
.sb-record { padding: 18px; border: 1px solid var(--o-border-light); border-radius: 8px; display: grid; gap: 10px; overflow-wrap: anywhere; min-width: 0; }
.sb-record h4 { margin: 0; font-size: 15px; }
.sb-actions { padding-top: 6px; }
.sb-upload { position: relative; overflow: hidden; cursor: pointer; }
.sb-upload input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.sb-upload:focus-within { outline: 2px solid var(--o-primary); outline-offset: 3px; }
@media (max-width: 600px) {
  .sb-toolbar { align-items: stretch; }
  .sb-toolbar > .sb-hint { flex-basis: 100%; }
  .sb-form-grid { grid-template-columns: minmax(0, 1fr); }
  .sb-search-row { grid-template-columns: minmax(0, 1fr); }
  .sb-search-row > .btn { justify-self: start; }
  .sb-field > .o_input { min-height: 44px; }
  .sb-invoice-line { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .sb-line-name { grid-column: 1 / -1; }
  .sb-invoice-line > :not(.sb-line-name) { text-align: left; }
  .sb-record { padding: 14px; }
  .sb-actions > .btn { max-width: 100%; white-space: normal; }
}
