/* Duplika Nexus 1.0.10 — standalone HTML invoices.
 * Nexus loads this native slot without ClientAreaHeadOutput. Keep every rule
 * invoice-scoped; no imports, JS, remote assets or copied parent templates.
 * Documents stay light, independently of the portal's screen preference.
 */
body:has(> .invoice-container) {
  --bg-muted: #f7f9fc; --bg: #fff; --bg-lifted: #edf3f8;
  --bg-inverted: #005099; --grayscale: #005099; --grayscale-lifted: #064478;
  --grayscale-accented: #0b365e; --rounding-sm: .375rem; --rounding-md: .5rem;
  background: #f7f9fc; color: #0d212f; color-scheme: light;
  font-family: Arial, Helvetica, sans-serif; font-size: 16px; line-height: 1.55;
}
body .invoice-container {
  display: flow-root;
  max-width: 1040px; width: calc(100% - 32px); margin: 24px auto;
  padding: clamp(20px, 4vw, 48px); background: #fff; color: #0d212f;
  border: 1px solid #dce6ee; border-top: 4px solid #288feb; border-radius: 12px;
  box-shadow: 0 8px 30px rgb(13 33 47 / 5%);
}
.invoice-container :is(h2,h3) { font-family: inherit; font-weight: 600; }
.invoice-container .invoice-header { align-items: flex-start; row-gap: 16px; }
/* Only Duplika's own logo. Gateway logos and image buttons keep their sizes. */
.invoice-container .invoice-header > .invoice-col:first-child > p > img { width: 180px; max-width: 100%; height: auto; }
.invoice-container .invoice-header h3 { font-size: clamp(24px, 3vw, 30px); margin: 16px 0 0; }
.invoice-container .invoice-status { margin: 0; font-size: 15px; font-weight: 600; }
.invoice-container .invoice-status > span { display: inline-block; padding: 6px 14px; border-radius: 999px; }
.invoice-container .invoice-status :is(.paid,.issued) { color: #145a37; background: #edf9f2; }
.invoice-container .invoice-status .unpaid { color: #a41d31; background: #fff0f2; }
.invoice-container .invoice-status .collections { color: #854000; background: #fff6e8; }
.invoice-container .invoice-status .refunded { color: #005099; background: #edf5ff; }
.invoice-container .invoice-status :is(.draft,.cancelled,.closed) { color: #455e70; background: #edf3f8; }
.invoice-container hr { border-color: #dce6ee; margin-block: 24px; }
.invoice-container .small-text { font-size: 15px; }
.invoice-container .invoice-col { min-width: 0; overflow-wrap: anywhere; }
.invoice-container .card { border-color: #dce6ee; border-radius: 10px; overflow: hidden; }
.invoice-container .card > .card-header { padding: 14px 18px; background: #edf5ff; border-color: #dce6ee; }
.invoice-container .card-header .card-title { font-size: 19px !important; color: #005099; }
.invoice-container .card-header .card-title strong { font-weight: 600; }
.invoice-container .bg-info { background-color: #005099 !important; }
.invoice-container .card > .card-title.bg-info { padding: 12px 18px !important; margin: 0; }
.invoice-container .table { margin-bottom: 0; color: #0d212f; font-size: 15px; }
.invoice-container .table :is(th,td) { padding: 12px 16px; border-color: #dce6ee; vertical-align: top; }
.invoice-container .table thead { background: #f7f9fc; color: #455e70; }
.invoice-container .table td.total-row { background: #f7f9fc; }
.invoice-container .table tr:last-child td.total-row { background: #edf5ff; color: #005099; font-weight: 700; }
.invoice-container .table :is(th,td):last-child:not([colspan]) { text-align: right !important; white-space: nowrap; }
.invoice-container .table td:first-child { overflow-wrap: anywhere; }
.invoice-container .transactions-container .table { min-width: 560px; table-layout: auto; }
.invoice-container .transactions-container td:first-child { white-space: nowrap; overflow-wrap: normal; }
/* Payment providers may use links as buttons; never paint their text blue. */
.invoice-container a:where(:not(.btn):not(.payment-btn-container a)) { color: #005099; }
.invoice-container a:where(:not(.btn):not(.payment-btn-container a)):hover { color: #064478; }
body:has(> .invoice-container) > p.d-print-none > a { display: inline-block; padding: 10px 12px; color: #005099; }
.invoice-container :is(a,button,input,select):focus-visible { outline: 2px solid #288feb; outline-offset: 3px; }
.invoice-container > .btn-group { margin-top: 20px; }
.invoice-container > .btn-group > .btn { min-height: 44px; padding: 10px 14px; font-size: 14px; }
.invoice-container > .btn-group > .btn:hover { background: #edf5ff; border-color: #005099; color: #005099; }
/* Match the real panel.tpl (.card-title/.card-text), not Bootstrap card-body.
 * Plain notes and payment notifications keep their native titles/content. */
.invoice-container .card:has(.duplika-fiscal-documents) { background: #f0f7ff; border-color: #bbdfff; }
.invoice-container .card:has(.duplika-fiscal-documents) > .card-title { display: none; }
.invoice-container .card:has(.duplika-fiscal-documents) > .card-text { margin: 0 !important; padding: 22px; }
.invoice-container .duplika-fiscal-documents h2 { font-size: 20px; margin: 0 0 6px; color: #005099; }
.invoice-container .duplika-fiscal-documents > p { margin: 0 0 16px; color: #455e70; font-size: 15px; }
.invoice-container .duplika-fiscal-content { line-height: 1.7; overflow-wrap: anywhere; }
.invoice-container a.duplika-fiscal-link {
  display: inline-flex; align-items: center; justify-content: center; min-height: 46px;
  margin: 6px 8px 6px 0; padding: 10px 18px; max-width: 100%;
  background: #005099; color: #fff; border: 1px solid #005099; border-radius: 8px;
  font-size: 16px; font-weight: 600; line-height: 1.5; text-align: center; text-decoration: none;
}
.invoice-container a.duplika-fiscal-link:is(:hover,:focus-visible) { background: #064478; border-color: #064478; color: #fff; }
@media screen and (max-width: 575.98px) {
  body .invoice-container { width: calc(100% - 16px); margin: 8px auto 20px; padding: 20px 16px; }
  .invoice-container .invoice-col { width: 100%; float: none; text-align: left !important; }
  .invoice-container .invoice-header h3 { margin-top: 8px; }
  .invoice-container .table :is(th,td) { padding: 10px 8px; }
  .invoice-container .card:has(.duplika-fiscal-documents) > .card-text { padding: 18px 16px; }
  .invoice-container a.duplika-fiscal-link { width: 100%; margin-inline: 0; }
}
@media print {
  /* Native invoice CSS includes Bootstrap's 992px print minimum. Let the
   * browser paper size govern this document; PDF generation is separate. */
  @page duplika-invoice { size: auto; margin: 12mm; }
  body:has(> .invoice-container) { page: duplika-invoice; }
  html:has(.invoice-container), body:has(> .invoice-container) { width: auto; min-width: 0 !important; background: #fff; }
  body .invoice-container { width: 100%; max-width: none; margin: 0; padding: 0; border: 0; box-shadow: none; }
  .invoice-container .duplika-fiscal-documents { break-inside: avoid; }
  .invoice-container .card:has(.duplika-fiscal-documents) { background: #fff; border-color: #dce6ee; }
  .invoice-container a.duplika-fiscal-link { min-height: 0; padding: 0; background: transparent; color: #0d212f; border: 0; text-decoration: underline; }
  .invoice-container .transactions-container { overflow: visible; }
  .invoice-container .transactions-container .table { min-width: 0; }
  .invoice-container .table :is(th,td) { padding: 6px 8px; }
}
