/*
 * pdai-receipt.css — PDAI Receipt / Financial Document Domain Stylesheet
 *
 * Covers receipt.dtd (Einzelblatt / Kassenbon / Rechnung / Spesenbleg):
 *   receipt, receipt-meta, vendor-block, vendor-name/-address/-phone/-email/
 *   -web/-tax-id/-ust-id/-iban, items, item, item-desc/-qty/-unit/-unit-price/
 *   -total/-vat, payment-summary, subtotal-line, vat-line, discount-line,
 *   total-line, payment-line, change-line, raw-text
 *
 * Also covers receipt type variants and payment method enum values.
 *
 * Palette: Oxford blue + warm gold — inherited from pdai-page.css custom properties.
 */

/* ── Receipt container ───────────────────────────────────────────────── */

[data-el="receipt"] {
  font-family: var(--sans);
  font-size: 0.92em;
}

/* Type badges */
[data-el="receipt"][data-type="kassenbon"]::before { content: "Kassenbon"; }
[data-el="receipt"][data-type="spesenbleg"]::before { content: "Spesenbleg"; }
[data-el="receipt"][data-type="rechnung"]::before { content: "Rechnung"; }
[data-el="receipt"][data-type="invoice"]::before { content: "Invoice"; }
[data-el="receipt"][data-type="hotel"]::before { content: "Hotel"; }
[data-el="receipt"][data-type="transport"]::before { content: "Transport"; }
[data-el="receipt"][data-type="restaurant"]::before { content: "Restaurant"; }
[data-el="receipt"][data-type="sonstige"]::before { content: "Sonstige"; }

[data-el="receipt"][data-type]::before {
  display: inline-block;
  font-family: var(--sans);
  font-size: 0.7em;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: #fff;
  background: var(--oxford);
  padding: 2px 8px;
  border-radius: 999px;
  margin-bottom: 10px;
}

/* ── Receipt meta (date, total, payment method) ──────────────────────── */

[data-el="receipt-meta"] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 12px;
  font-size: 0.88em;
  margin-bottom: 14px;
  padding: 8px 0;
  border-bottom: 1px solid var(--rule);
}

/* Payment method enum values — all share the same presentation */
[data-el="receipt-meta"][data-payment_method="bar"],
[data-el="receipt-meta"][data-payment_method="karte"],
[data-el="receipt-meta"][data-payment_method="ec"],
[data-el="receipt-meta"][data-payment_method="kreditkarte"],
[data-el="receipt-meta"][data-payment_method="rechnung"],
[data-el="receipt-meta"][data-payment_method="ueberweisung"],
[data-el="receipt-meta"][data-payment_method="paypal"],
[data-el="receipt-meta"][data-payment_method="sonstige"] {
  /* Payment method chip — same base style, ready for icon/color overrides */
}

[data-el="payment-line"][data-method="bar"],
[data-el="payment-line"][data-method="karte"],
[data-el="payment-line"][data-method="ec"],
[data-el="payment-line"][data-method="kreditkarte"],
[data-el="payment-line"][data-method="rechnung"],
[data-el="payment-line"][data-method="ueberweisung"],
[data-el="payment-line"][data-method="paypal"],
[data-el="payment-line"][data-method="sonstige"] {
  /* Payment row — same layout as base payment-line */
}

/* ── Vendor block ────────────────────────────────────────────────────── */

[data-el="vendor-block"] {
  background: var(--gold-pale);
  border: 1px solid var(--gold-border);
  border-radius: 5px;
  padding: 10px 14px;
  margin-bottom: 16px;
  font-size: 0.9em;
}

[data-el="vendor-name"] {
  display: block;
  font-weight: 700;
  color: var(--oxford);
  font-size: 1.05em;
  margin-bottom: 4px;
}

[data-el="vendor-address"],
[data-el="vendor-phone"],
[data-el="vendor-email"],
[data-el="vendor-web"] {
  display: block;
  color: var(--ink-muted);
  font-size: 0.9em;
}

[data-el="vendor-tax-id"],
[data-el="vendor-ust-id"],
[data-el="vendor-iban"] {
  display: block;
  font-family: var(--mono);
  font-size: 0.82em;
  color: var(--ink-faint);
  margin-top: 4px;
}

/* ── Line-item table ─────────────────────────────────────────────────── */

[data-el="items"] {
  display: block;
  width: 100%;
  margin-bottom: 10px;
}

[data-el="item"] {
  display: grid;
  grid-template-columns: 1fr 4em 6em 6em;
  gap: 0 8px;
  padding: 3px 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  font-size: 0.9em;
  align-items: baseline;
}

[data-el="item"]:nth-child(even) {
  background: rgba(0, 0, 0, 0.02);
}

[data-el="item-desc"] {
  color: var(--ink);
}

[data-el="item-qty"],
[data-el="item-unit"] {
  text-align: right;
  color: var(--ink-muted);
  font-size: 0.88em;
}

[data-el="item-unit-price"] {
  text-align: right;
  font-family: var(--mono);
  font-size: 0.88em;
  color: var(--ink-muted);
}

[data-el="item-total"] {
  text-align: right;
  font-family: var(--mono);
  font-weight: 600;
  color: var(--ink);
}

[data-el="item-vat"] {
  grid-column: 1 / -1;
  font-size: 0.78em;
  color: var(--ink-faint);
  text-align: right;
  padding: 1px 0;
}

/* ── Payment summary ─────────────────────────────────────────────────── */

[data-el="payment-summary"] {
  display: block;
  margin-top: 10px;
  padding-top: 8px;
  border-top: 2px solid var(--rule);
  font-size: 0.9em;
}

[data-el="subtotal-line"],
[data-el="vat-line"],
[data-el="discount-line"],
[data-el="payment-line"],
[data-el="change-line"] {
  display: flex;
  justify-content: space-between;
  padding: 2px 0;
  color: var(--ink-muted);
}

[data-el="total-line"] {
  display: flex;
  justify-content: space-between;
  padding: 4px 0 2px;
  font-weight: 700;
  font-size: 1.05em;
  color: var(--ink);
  border-top: 1px solid var(--rule);
  margin-top: 4px;
}

[data-el="discount-line"] {
  color: #2b7a3e;
}

[data-el="change-line"] {
  color: var(--gold);
  font-weight: 600;
}

/* ── Raw text fallback ───────────────────────────────────────────────── */

[data-el="raw-text"] {
  display: block;
  font-family: var(--mono);
  font-size: 0.8em;
  color: var(--ink-muted);
  white-space: pre-wrap;
  background: var(--paper-sunken);
  padding: 0.6em 0.8em;
  border-radius: 4px;
  margin-top: 8px;
}

/* ── hi[rend=underline] — used in receipt totals and signatures ───────── */

[data-el="hi"][data-rend="underline"] {
  text-decoration: underline;
}

/* Famulus thermal slip, on the same data-el vocabulary. */

.page-sheet [data-el="receipt"],
.receipt-slip {
  max-width: 420px;
  margin: 0.6rem auto 1.2rem;
  background: var(--paper-sheet, #fffdf9);
  border: 1px solid var(--rule);
  border-radius: 4px;
  padding: 1.4rem 1.6rem 1.8rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  font-family: var(--sans);
}

.receipt-slip [data-el="vendor-block"] {
  text-align: center;
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--rule-gold);
  border-radius: 0;
  padding: 0 0 0.7rem;
  margin-bottom: 0.8rem;
}

.receipt-slip [data-el="vendor-name"] {
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.receipt-slip [data-el="item"],
.receipt-slip .famulus-item {
  display: flex;
  justify-content: space-between;
  grid-template-columns: none;
  gap: 12px;
  border-bottom: 1px dotted var(--rule);
}

.receipt-slip [data-el="item-total"] {
  font-family: var(--mono);
  white-space: nowrap;
}

.receipt-slip [data-el="branch"],
.receipt-slip [data-el="contact"],
.receipt-slip [data-el="issued"],
.receipt-slip [data-el="note"] {
  display: block;
  font-size: 0.82em;
  color: var(--ink-muted);
}
