.finance-page { min-width: 0; }
.finance-page .page-heading { margin-bottom: 25px; }
.finance-page .finance-toolbar { margin-bottom: 20px; }
.finance-page .search-wrap input { width: 100%; padding-left: 13px; }
.finance-page .filters select { max-width: 220px; }
.finance-page .metric-value { font-size: 29px; line-height: 1.3; }
.finance-page .metric-note { line-height: 1.5; }
.finance-dark { background: #191919; color: #fff; border-color: #191919; }
.finance-table { min-width: 660px; }
.finance-table td { vertical-align: middle; }
.finance-table td:last-child { text-align: right; }
.finance-table td .lead-name { font-weight: 600; }
.finance-table td .lead-org { margin-top: 5px; max-width: 320px; }
.finance-table th { white-space: nowrap; }
.finance-table-wrap { margin-bottom: 20px; }
.finance-detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 32px; align-items: start; }
.finance-detail-layout > div, .finance-detail-layout > aside { min-width: 0; }
.finance-summary { position: sticky; top: 20px; border: 1px solid #dedede; padding: 0 20px; background: #fafafa; }
.finance-summary .panel { background: transparent; margin: 0; }
.finance-summary .panel:first-child { border-top: 0; }
.finance-summary .panel h2 { font-size: 25px; }
.finance-summary .help { margin-top: 16px; }
.finance-totals { margin: 14px 0; font-size: 14px; }
.finance-totals > div { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 10px 0; }
.finance-totals dt { color: #626262; }
.finance-totals dd { margin: 0; font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.finance-totals .finance-total { margin: 8px 0; padding: 15px 0; border-top: 1px solid #bbb; border-bottom: 1px solid #bbb; font-weight: 650; }
.finance-totals .finance-total dt { color: #181818; }
.finance-totals .finance-total dd { font-size: 20px; }
.finance-lines { display: flex; flex-direction: column; gap: 15px; }
.finance-line { display: grid; grid-template-columns: minmax(160px, 2.4fr) minmax(60px, .6fr) minmax(95px, 1fr) minmax(80px, 1fr) auto; gap: 10px; align-items: end; border-bottom: 1px solid #e2e2e2; padding-bottom: 16px; }
.finance-line .field { margin: 0; }
.finance-line input { padding: 9px; }
.finance-line .field > span:first-child { font-size: 12px; }
.finance-line-amount { display: flex; flex-direction: column; justify-content: center; gap: 9px; min-height: 66px; text-align: right; }
.finance-line-amount strong { display: block; padding: 9px 0; font-size: 13px; font-weight: 500; white-space: nowrap; }
.finance-line .btn { margin-bottom: 4px; padding: 6px; font-size: 12px; }
.finance-add-rate { display: flex; align-items: end; gap: 12px; margin-top: 20px; }
.finance-add-rate .field { flex: 1; margin: 0; }
.finance-add-rate .btn { margin-bottom: 2px; }
.finance-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.finance-prose { white-space: pre-wrap; overflow-wrap: anywhere; margin-bottom: 22px; }
.finance-savebar { display: flex; flex-wrap: wrap; gap: 10px; padding: 20px 0; border-top: 1px solid #dedede; margin-top: 20px; }
.finance-empty { padding: 48px 30px; margin: 20px 0; border: 1px solid #dedede; background: #fafafa; text-align: center; }
.finance-empty p { max-width: 550px; margin: 16px auto 22px; color: #666; }
.finance-footnote { margin: 18px 0; }
.finance-invoice-tabs { display: flex; flex-wrap: wrap; gap: 0; margin: 4px 0 20px; border-bottom: 1px solid #ccc; }
.finance-invoice-tabs button { display: inline-flex; align-items: center; gap: 10px; border: 0; border-bottom: 2px solid transparent; padding: 12px 15px; color: #666; background: transparent; font-size: 14px; }
.finance-invoice-tabs button.active { border-bottom-color: #181818; color: #181818; font-weight: 650; }
.finance-invoice-tabs button:hover { background: #f4f4f4; }
.finance-invoice-tabs button span { font-size: 12px; font-weight: 400; background: #f0f0f0; min-width: 22px; padding: 1px 5px; }
.finance-date-presets { display: flex; flex-wrap: wrap; gap: 8px; margin: -4px 0 22px; }
.finance-date-presets .btn { padding: 6px 13px; }
.finance-export { position: relative; font-size: 14px; }
.finance-export summary { padding: 9px 12px; cursor: pointer; color: #666; }
.finance-export > div { position: absolute; right: 0; top: 100%; z-index: 4; display: flex; flex-direction: column; gap: 8px; min-width: 180px; padding: 12px; border: 1px solid #ccc; background: #fff; box-shadow: 0 8px 22px #00000012; }
.finance-info-line { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 10px 0 22px; }
.finance-info-line .help { max-width: 610px; }
.finance-info-line .filters { flex-shrink: 0; }
.finance-narrow { max-width: 750px; }
.finance-narrow .field { margin-bottom: 20px; }
.finance-narrow .panel { padding-top: 24px; }
.finance-form-intro { margin-bottom: 24px; line-height: 1.8; }
.finance-actions { display: flex; gap: 10px; flex-wrap: wrap; margin: 20px 0; }
.finance-billto { display: flex; align-items: start; justify-content: space-between; gap: 25px; margin-bottom: 25px; }
.finance-billto h2 { margin-bottom: 15px; }
.finance-billto dl { min-width: 190px; margin: 0; font-size: 13px; }
.finance-billto dl > div { display: flex; justify-content: space-between; gap: 15px; margin-bottom: 12px; }
.finance-billto dt { color: #666; }
.finance-billto dd { margin: 0; text-align: right; }
.finance-billto .finance-prose { display: block; margin-top: 10px; }
.finance-page .task-row strong { text-align: right; white-space: nowrap; font-weight: 500; }
.finance-page .disclosure > .help { margin: 18px 0; }
.finance-print { max-width: 900px; margin: 55px auto; padding: 0 35px; color: #111; }
.finance-print > header { display: flex; justify-content: space-between; gap: 30px; border-bottom: 2px solid #222; padding-bottom: 30px; }
.finance-print > header > div:last-child { text-align: right; }
.finance-print header h1 { font-size: 52px; margin-bottom: 8px; }
.finance-print header .badge { margin-top: 12px; }
.finance-print-client { display: flex; justify-content: space-between; gap: 30px; margin: 35px 0; }
.finance-print-client h3 { margin-bottom: 12px; }
.finance-print-client > div:last-child { text-align: right; }
.finance-print > h2 { margin: 30px 0; }
.finance-print .finance-table { min-width: 0; width: 100%; }
.finance-print .finance-table td:last-child { text-align: left; }
.finance-print-totals { max-width: 380px; margin: 20px 0 35px auto; }
.finance-print-notes { padding-top: 24px; border-top: 1px solid #ccc; }
.finance-print-notes h3 { margin-bottom: 12px; }
.finance-print-help { margin-top: 50px; color: #777; font-size: 12px; }
.finance-print-preview { width: min(1050px, 94vw); max-width: none; max-height: 94dvh; padding: 0; border: 1px solid #bcbcbc; color: #181818; background: #fff; box-shadow: 0 20px 80px #00000038; }
.finance-print-preview::backdrop { background: #0008; }
.finance-print-toolbar { position: sticky; z-index: 2; top: 0; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 18px 25px; border-bottom: 1px solid #ddd; background: #fafafa; }
.finance-print-toolbar h2 { font-size: 25px; }
.finance-print-toolbar > div { display: flex; flex-wrap: wrap; gap: 8px; }
.finance-print-preview .finance-print { margin: 36px auto; }
@media (max-width: 1250px) {
  .finance-detail-layout { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .finance-summary { position: static; max-width: none; }
  .finance-summary .finance-totals { max-width: 650px; }
}
@media (max-width: 700px) {
  .finance-print-toolbar { align-items: start; flex-direction: column; padding: 14px 16px; }
  .finance-line { grid-template-columns: 1fr 1fr; gap: 12px; }
  .finance-line-description { grid-column: 1 / -1; }
  .finance-line-amount { min-height: 0; flex-direction: row; justify-content: space-between; grid-column: 1 / 2; align-items: center; }
  .finance-line-amount strong { padding: 0; }
  .finance-line .btn { justify-self: end; }
  .finance-page .field-grid { grid-template-columns: 1fr; }
  .finance-detail-layout { gap: 0; }
  .finance-info-line, .finance-billto { align-items: stretch; flex-direction: column; gap: 14px; }
  .finance-info-line .filters { flex-shrink: 1; }
  .finance-page .finance-toolbar .filters { width: 100%; }
  .finance-page .finance-toolbar .filters select { flex: 1 1 100px; min-width: 0; max-width: none; }
  .finance-page .metric-value { font-size: 23px; }
  .finance-empty { padding: 30px 20px; }
  .finance-add-rate { flex-direction: column; align-items: stretch; }
  .finance-page .task-row { flex-wrap: wrap; }
  .finance-print { margin: 20px auto; padding: 0 15px; }
  .finance-print > header, .finance-print-client { flex-direction: column; gap: 15px; }
  .finance-print > header > div:last-child, .finance-print-client > div:last-child { text-align: left; }
}
@media print {
  body:has(#finance-print-preview[open]) > :not(#finance-print-preview) { display: none !important; }
  .finance-print-preview[open] { display: block; position: static; width: auto; max-width: none; height: auto; max-height: none; margin: 0; border: 0; padding: 0; overflow: visible; box-shadow: none; }
  .finance-print-preview::backdrop { display: none; }
  .finance-print-toolbar { display: none !important; }
  .finance-print-preview .finance-print { margin: 0; padding: 0; }
  .finance-print { max-width: none; margin: 0; padding: 0; font-size: 11pt; }
  .finance-print .finance-print-help { display: none; }
  .finance-print .finance-table { min-width: 0; }
  .finance-print header, .finance-print-client { break-inside: avoid; }
  .finance-print .finance-table tr, .finance-print-totals { break-inside: avoid; }
  .finance-print > header, .finance-print-client { flex-direction: row; }
  .finance-print > header > div:last-child, .finance-print-client > div:last-child { text-align: right; }
}
