/* Generated by scripts/render-lander-invoice.tsx from the app's invoice renderer. Do not edit. */
.ivc-doc {
  --ivc-accent: #0f766e;
  --ivc-ink: #111827;
  --ivc-muted: #6b7280;
  --ivc-line: #e5e7eb;
  --ivc-line-strong: #d1d5db;
  --ivc-soft: #f9fafb;
  font-family: "Inter", "Segoe UI", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  font-size: 10pt;
  line-height: 1.45;
  color: var(--ivc-ink);
  background: #fff;
  box-sizing: border-box;
  width: 210mm;
  min-height: 297mm;
  padding: 16mm;
  margin: 0 auto;
  -webkit-font-smoothing: antialiased;
  font-variant-numeric: tabular-nums;
  /* Keep the accent bar, table header fill and totals tint when a browser
     prints. Browsers drop backgrounds by default ("Background graphics" is
     unticked out of the box), and this is inherited, so setting it here covers
     every render path — the print page, the PDF and the preview — rather than
     relying on each wrapper to remember it. */
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}
.ivc-doc *, .ivc-doc *::before, .ivc-doc *::after { box-sizing: inherit; }
.ivc-doc p { margin: 0 0 0.35em; }
.ivc-doc table { border-collapse: collapse; width: 100%; }

.ivc-muted { color: var(--ivc-muted); }
.ivc-accent { color: var(--ivc-accent); }
.ivc-small { font-size: 0.85em; }
.ivc-large { font-size: 1.15em; }
.ivc-strong { font-weight: 600; }
.ivc-pre { white-space: pre-wrap; }
.ivc-left { text-align: left; }
.ivc-center { text-align: center; }
.ivc-right { text-align: right; }
.ivc-nowrap { white-space: nowrap; }

/*
 * The gap lives on the slot, not the block: the renderer wraps every block in
 * its own element, so a rule on .ivc-block:last-child would match all of them
 * and cancel the spacing entirely.
 */
.ivc-slot { margin-bottom: 4mm; }
.ivc-slot:last-child { margin-bottom: 0; }
/* A block that renders nothing should not leave a hole behind it. */
.ivc-slot:empty { margin-bottom: 0; }
/* A pinned footer is out of flow; its slot must not add a phantom gap. */
.ivc-slot:has(> .ivc-footer--pinned) { margin-bottom: 0; }
/* Items and totals are one unit — see the joinsNext note in the renderer. */
.ivc-slot--joined { margin-bottom: 0; }
.ivc-block { margin-bottom: 0; }

/* --- header --- */
.ivc-header { display: flex; gap: 8mm; align-items: flex-start; justify-content: space-between; }
.ivc-header--logo-right { flex-direction: row-reverse; }
.ivc-header--stacked { flex-direction: column; gap: 4mm; }
.ivc-header__logo { flex: 0 0 auto; }
.ivc-header__logo img { display: block; width: auto; object-fit: contain; }
.ivc-header__body { flex: 1 1 auto; min-width: 0; }
.ivc-header--logo-right .ivc-header__body { text-align: left; }
.ivc-header__name { font-size: 1.35em; font-weight: 700; letter-spacing: -0.01em; line-height: 1.2; }
.ivc-header__lines { margin-top: 1.5mm; color: var(--ivc-muted); font-size: 0.9em; }
.ivc-header__ids { margin-top: 1.5mm; font-size: 0.85em; color: var(--ivc-muted); }
.ivc-header__ids span + span::before { content: "  ·  "; }
.ivc-accentbar { height: 2.5mm; background: var(--ivc-accent); border-radius: 1mm; margin-top: 4mm; }

/* --- document title --- */
.ivc-title { font-size: 1.7em; font-weight: 700; letter-spacing: -0.015em; line-height: 1.15; }
.ivc-title--upper { text-transform: uppercase; letter-spacing: 0.02em; }
.ivc-title--accent { color: var(--ivc-accent); }
.ivc-title__number { font-weight: 400; }

/* --- parties --- */
.ivc-parties { display: flex; gap: 8mm; align-items: stretch; }
.ivc-parties__col { flex: 1 1 0; min-width: 0; }
.ivc-parties--boxed .ivc-parties__col {
  border: 1px solid var(--ivc-line);
  border-radius: 1.5mm;
  padding: 3mm 3.5mm;
  background: var(--ivc-soft);
}
.ivc-party__label {
  font-size: 0.75em; font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.06em; color: var(--ivc-muted); margin-bottom: 1.5mm;
}
.ivc-party__name { font-weight: 600; }
.ivc-party__lines { color: var(--ivc-ink); }
.ivc-party__ids { margin-top: 1.5mm; font-size: 0.88em; color: var(--ivc-muted); }

/* --- invoice meta --- */
.ivc-meta__row { display: flex; gap: 3mm; }
.ivc-meta__row + .ivc-meta__row { margin-top: 0.8mm; }
.ivc-meta__key { color: var(--ivc-muted); flex: 0 0 auto; min-width: 34mm; }
.ivc-meta__val { font-weight: 500; }
.ivc-meta--inline { display: flex; flex-wrap: wrap; gap: 1mm 5mm; }
.ivc-meta--inline .ivc-meta__row { display: inline-flex; margin: 0; }
.ivc-meta--inline .ivc-meta__key { min-width: 0; }

/* --- items --- */
.ivc-items thead th {
  font-size: 0.8em; font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.05em; text-align: left; padding: 2mm 2mm;
  border-bottom: 1.5px solid var(--ivc-line-strong); color: var(--ivc-muted);
  vertical-align: bottom;
}
.ivc-items--accent thead th {
  background: var(--ivc-accent); color: #fff; border-bottom: none;
}
.ivc-items--accent thead th:first-child { border-top-left-radius: 1.2mm; }
.ivc-items--accent thead th:last-child { border-top-right-radius: 1.2mm; }
.ivc-items tbody td {
  padding: 2.2mm 2mm; border-bottom: 1px solid var(--ivc-line); vertical-align: top;
}
.ivc-items--compact thead th { padding: 1.4mm 1.6mm; }
.ivc-items--compact tbody td { padding: 1.4mm 1.6mm; }
.ivc-items--zebra tbody tr:nth-child(odd) td { background: var(--ivc-soft); }
.ivc-items tbody tr { page-break-inside: avoid; break-inside: avoid; }
.ivc-items__title { font-weight: 500; }
.ivc-items__notes { color: var(--ivc-muted); font-size: 0.88em; margin-top: 0.6mm; white-space: pre-wrap; }
.ivc-items__num { text-align: right; white-space: nowrap; }
.ivc-items__pos { color: var(--ivc-muted); width: 8mm; }

/* --- totals --- */
.ivc-totals { display: flex; }
.ivc-totals--right { justify-content: flex-end; }
.ivc-totals__box { min-width: 78mm; }
.ivc-totals__row { display: flex; justify-content: space-between; gap: 6mm; padding: 1.1mm 0; }
.ivc-totals__row--sep { border-top: 1px solid var(--ivc-line); margin-top: 1mm; padding-top: 1.8mm; }
.ivc-totals__key { color: var(--ivc-muted); }
.ivc-totals__val { font-variant-numeric: tabular-nums; white-space: nowrap; }
.ivc-totals__grand {
  display: flex; justify-content: space-between; gap: 6mm;
  margin-top: 1.5mm; padding: 2.2mm 3mm;
  border-top: 2px solid var(--ivc-accent);
  font-size: 1.12em; font-weight: 700;
}
.ivc-totals__grand--plain { border-top: 1px solid var(--ivc-line-strong); padding: 2mm 0 0; }
.ivc-totals__grand--filled { background: color-mix(in srgb, var(--ivc-accent) 8%, #fff); border-radius: 1.5mm; }
.ivc-vatrecap { margin-top: 2mm; font-size: 0.85em; }
.ivc-vatrecap th, .ivc-vatrecap td { padding: 0.8mm 2mm; text-align: right; }
.ivc-vatrecap th:first-child, .ivc-vatrecap td:first-child { text-align: left; }
.ivc-vatrecap thead th { color: var(--ivc-muted); border-bottom: 1px solid var(--ivc-line); font-weight: 500; }

/* --- payment --- */
.ivc-payment { display: flex; gap: 6mm; align-items: flex-start; justify-content: space-between; }
.ivc-payment--qr-left { flex-direction: row-reverse; }
.ivc-payment__details { flex: 1 1 auto; min-width: 0; }
.ivc-payment__label {
  font-size: 0.75em; font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.06em; color: var(--ivc-muted); margin-bottom: 1.5mm;
}
.ivc-payment__qr { flex: 0 0 auto; text-align: center; }
.ivc-payment__qr img { display: block; image-rendering: pixelated; }
.ivc-payment__qr figcaption { font-size: 0.75em; color: var(--ivc-muted); margin-top: 1mm; }

/* --- misc blocks --- */
.ivc-divider { border: none; border-top-style: solid; margin: 0; }
.ivc-signature__line {
  margin-top: 10mm; border-top: 1px solid var(--ivc-line-strong);
  width: 55mm; padding-top: 1mm; font-size: 0.8em; color: var(--ivc-muted);
}
.ivc-signature--right .ivc-signature__line { margin-left: auto; }
.ivc-signature--center .ivc-signature__line { margin-left: auto; margin-right: auto; }
/* --- tax notice --- */
.ivc-taxnotice { line-height: 1.4; }
.ivc-taxnotice--boxed {
  border: 1px solid var(--ivc-line);
  border-left: 2px solid var(--ivc-accent);
  border-radius: 1.5mm;
  padding: 2mm 3mm;
  background: var(--ivc-soft);
}

/* --- footer --- */
.ivc-footer { font-size: 0.85em; }
.ivc-footer--divider { border-top: 1px solid var(--ivc-line); padding-top: 2.5mm; }
.ivc-footer__inner {
  display: flex; align-items: flex-end; justify-content: space-between; gap: 6mm;
}
.ivc-footer__text { flex: 1 1 auto; min-width: 0; }
.ivc-footer__pages { flex: 0 0 auto; white-space: nowrap; }

/*
 * A pinned footer sits at the bottom of the page box on screen, and becomes
 * position:fixed for print so the browser repeats it on every sheet. The doc
 * reserves matching bottom padding so body copy never runs underneath.
 */
.ivc-doc { padding-bottom: calc(16mm + var(--ivc-footer-space, 0mm)); }
.ivc-footer--pinned {
  position: absolute;
  left: 16mm;
  right: 16mm;
  bottom: 16mm;
  margin-bottom: 0;
}
.ivc-notice { margin-top: 1.5mm; }

/* --- status stamp --- */
.ivc-stamp {
  position: absolute; top: 26mm; right: 16mm;
  border: 2.5px solid currentColor; border-radius: 2mm;
  padding: 1.5mm 4mm; font-weight: 700; font-size: 1.1em;
  letter-spacing: 0.12em; transform: rotate(-6deg); opacity: 0.75;
}
.ivc-stamp--draft { color: #9ca3af; }
.ivc-stamp--cancelled { color: #dc2626; }
.ivc-doc { position: relative; }

@media print {
  .ivc-doc { width: auto; min-height: 0; margin: 0; box-shadow: none; }
  .ivc-items thead { display: table-header-group; }
  .ivc-items tfoot { display: table-footer-group; }
  /* Chrome repeats a fixed element on every printed sheet. */
  .ivc-footer--pinned { position: fixed; }
}
