.invoice-app { min-width: 0; }
.invoice-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.invoice-heading h2, .invoice-heading h3 { margin: 0 0 6px; }
.invoice-heading p { margin: 0; }
.invoice-message:not([hidden]) { padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; margin-bottom: 16px; }
.invoice-summary { border: 1px solid var(--line); border-radius: 12px; padding: 12px 18px; margin: 16px 0 22px; }
.invoice-section { border-top: 1px solid var(--line); margin-top: 24px; padding-top: 20px; }
.invoice-section > summary, .invoice-patient-detail > summary { font-weight: 700; cursor: pointer; padding: 5px 0 14px; }
.invoice-section .form-grid { margin-top: 14px; }
.invoice-app .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.invoice-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 16px 0; }
.invoice-warning { padding: 16px; border-radius: 10px; background: #fff7df; color: #654b10; line-height: 1.55; }
.invoice-filters { display: grid; grid-template-columns: minmax(160px, 1fr) minmax(150px, .8fr) minmax(180px, 1fr) auto; align-items: end; gap: 12px; margin: 16px 0; }
.invoice-filters label, .invoice-doctor-filter, .invoice-delivery > label:first-child { display: grid; gap: 7px; font-weight: 600; }
.invoice-doctor-filter { max-width: 430px; }
.invoice-check { display: flex; align-items: flex-start; gap: 9px; margin: 14px 0; }
.invoice-check input { width: auto; margin-top: 3px; }
.invoice-patient-detail { margin-top: 20px; }
.invoice-app [hidden] { display: none !important; }
.invoice-app .summary-row strong { text-align: right; }
.invoice-app .danger { background: #fff0ed; border: 1px solid #d8a59c; color: #912d23; border-radius: 9px; padding: 10px 16px; cursor: pointer; }
.invoice-app button:disabled { opacity: .55; cursor: wait; }
.invoice-app .invoice-history-table td:last-child { min-width: 180px; }
.invoice-app input[readonly] { background: #f4f6f7; }
.invoice-app .billing-invalid-field, .invoice-app .billing-required-action { border-color: #b42318; outline: 2px solid #b42318; outline-offset: 1px; scroll-margin-block: 110px; }
.invoice-app .billing-required-action { background: #fff0ed; color: #912d23; }
.invoice-app .billing-field-error { display: block; color: #b42318; font-size: 13px; font-weight: 400; line-height: 1.4; }
.invoice-app .invoice-check:has(.billing-invalid-field) { flex-wrap: wrap; }
.invoice-app .invoice-check .billing-field-error { flex-basis: 100%; }
.invoice-app > .invoice-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 0; border-radius: 0; padding: 0; margin: 24px 0; }
.invoice-app > .invoice-summary > .summary-row { display: grid; align-content: start; justify-content: normal; gap: 8px; min-width: 0; border: 0; border-radius: 0; padding: 4px 24px; background: transparent; }
.invoice-app > .invoice-summary > .summary-row:first-child { padding-left: 0; }
.invoice-app > .invoice-summary > .summary-row + .summary-row { border-left: 1px solid var(--line); }
.invoice-app > .invoice-summary > .summary-row span { font-size: 13px; font-weight: 500; }
.invoice-app > .invoice-summary > .summary-row strong { text-align: left; overflow-wrap: anywhere; }
.invoice-app .invoice-summary.invoice-recap { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); align-items: start; gap: 36px; border: 0; border-radius: 0; padding: 0; margin: 24px 0; }
.invoice-recap dl { min-width: 0; margin: 0; }
.invoice-recap-line { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: baseline; gap: 16px; padding: 12px 0; }
.invoice-recap-line dt { color: var(--muted); font-size: 13px; font-weight: 500; }
.invoice-recap-line dd { min-width: 0; margin: 0; color: var(--text); text-align: right; font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.invoice-recap-details .invoice-recap-line + .invoice-recap-line { border-top: 1px solid var(--line); }
.invoice-recap .invoice-recap-amounts { padding: 8px 22px; border-radius: 12px; background: var(--soft); }
.invoice-recap-amounts .invoice-recap-line { grid-template-columns: minmax(0, 1fr) minmax(0, .8fr); }
.invoice-recap-amounts .invoice-recap-total { margin-top: 8px; border-top: 1px solid var(--line-strong); padding: 20px 0 14px; align-items: center; }
.invoice-recap-total dt { color: var(--text); font-size: 14px; font-weight: 700; }
.invoice-recap-total dd { font-size: 25px; font-weight: 750; letter-spacing: -.5px; }
.invoice-parties { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px; margin: 24px 0; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.invoice-party { min-width: 0; }
.invoice-party-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 34px; margin-bottom: 12px; }
.invoice-party-heading h4 { margin: 0; color: var(--muted); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.invoice-party .invoice-party-name { margin: 0 0 4px; font-weight: 700; font-size: 16px; overflow-wrap: anywhere; }
.invoice-party .invoice-party-address { margin: 0 0 16px; white-space: pre-line; overflow-wrap: anywhere; }
.invoice-party dl { display: grid; gap: 6px; margin: 0; }
.invoice-party dl > div { display: grid; grid-template-columns: 70px minmax(0, 1fr); gap: 12px; font-size: 13px; }
.invoice-party dt { color: var(--muted); }
.invoice-party dd { margin: 0; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.invoice-party .invoice-party-note { margin: 12px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; white-space: pre-line; overflow-wrap: anywhere; }
.invoice-app details:has(> [data-billing-form="profile"]), .invoice-app details:has(> [data-billing-form="settings"]) { scroll-margin-top: 100px; }
.invoice-report-form { margin: 20px 0; }
.invoice-report-form > summary { width: fit-content; cursor: pointer; font-weight: 600; }
.invoice-report-form form { margin-top: 16px; max-width: 680px; }
.invoice-report-form label { display: grid; gap: 8px; font-weight: 600; }
.invoice-report-indicator { display: inline-block; margin-top: 8px; color: var(--amber); font-size: 12px; font-weight: 600; }
.invoice-error-report { margin: 20px 0; padding: 16px 20px; background: var(--amber-soft); border-left: 3px solid var(--amber); }
.invoice-error-report h4 { margin: 0 0 8px; }
.invoice-error-report p { margin: 8px 0 0; }
.invoice-report-message { white-space: pre-wrap; overflow-wrap: anywhere; }
@media (max-width: 760px) {
  .invoice-heading { flex-direction: column; }
  .invoice-filters, .invoice-app .form-grid { grid-template-columns: minmax(0, 1fr); }
  .invoice-actions { align-items: stretch; flex-direction: column; }
  .invoice-summary { padding: 10px 12px; }
  .invoice-app > .invoice-summary { grid-template-columns: minmax(0, 1fr); }
  .invoice-app > .invoice-summary > .summary-row { padding: 14px 0; }
  .invoice-app > .invoice-summary > .summary-row + .summary-row { border-left: 0; border-top: 1px solid var(--line); }
  .invoice-app .invoice-summary.invoice-recap { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .invoice-recap .invoice-recap-amounts { padding: 8px 16px; }
  .invoice-parties { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .invoice-party + .invoice-party { border-top: 1px solid var(--line); padding-top: 20px; }
  .invoice-app details:has(> [data-billing-form="profile"]), .invoice-app details:has(> [data-billing-form="settings"]) { scroll-margin-top: 200px; }
}
