:root { --brand: #1F3864; --brand-light: #D9E2F3; }
.bg-brand { background: var(--brand) !important; }
.text-brand { color: var(--brand) !important; }
.btn-brand { background: var(--brand); color: #fff; border-color: var(--brand); }
.btn-brand:hover, .btn-brand:focus { background: #172a4d; color: #fff; border-color: #172a4d; }
.table thead th { background: var(--brand-light); font-weight: 600; font-size: .85rem; white-space: nowrap; }
.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.internal { background: #fff8e1; }
.internal-label { font-size: .75rem; color: #8a6d00; text-transform: uppercase; letter-spacing: .04em; }
#lines textarea { min-height: 38px; resize: vertical; }
#lines td { vertical-align: top; }
#lines input.form-control-sm, #lines textarea.form-control-sm { font-size: .875rem; }
.totals-table td { padding: .3rem .5rem; }
@media (max-width: 767px) {
  #lines thead { display: none; }
  #lines tr { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem; padding: .75rem 0; border-bottom: 2px solid var(--brand-light); }
  #lines td { border: 0; padding: 0; }
  #lines td.c-desc { grid-column: 1 / -1; }
  #lines td.c-no { display: none; }
  #lines td[data-label]::before { content: attr(data-label); display: block; font-size: .7rem; color: #6c757d; }
}
