body { font-family: "Plus Jakarta Sans", system-ui, sans-serif; }

.row-item { cursor: pointer; transition: background .15s ease; }
.row-item:hover { background: #f8fafc; }
.row-item.active { background: #f1f5f9; box-shadow: inset 3px 0 0 #0f172a; }
.row-item.row-flash { animation: receiptFlash 2.2s ease; }

@keyframes receiptFlash {
  0% { background: #ecfdf5; }
  40% { background: #d1fae5; }
  100% { background: transparent; }
}

.tp-paper {
  background: #fff;
  color: #111;
  width: 100%;
  max-width: 320px;
  margin: 0 auto;
  padding: 18px 16px 22px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
  line-height: 1.35;
  border-radius: 4px;
  box-shadow: 0 20px 50px rgba(0,0,0,.12);
  border: 1px solid #e2e8f0;
}
.tp-mono, .tp-line {
  white-space: pre;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
  display: inline-block;
  text-align: left;
  max-width: 100%;
}
.tp-line { color: #333; }
.tp-brand { text-align: right; font-weight: 900; font-size: 18px; letter-spacing: -.04em; line-height: 1; }
.tp-title { text-align: right; font-weight: 900; font-size: 15px; letter-spacing: .12em; margin: 8px 0 4px; }
.tp-copy { text-align: right; font-weight: 800; font-size: 10px; letter-spacing: .06em; margin: 0 0 6px; text-transform: uppercase; }
.tp-right { text-align: right; }
.tp-small { font-size: 10px; color: #444; }
.tp-rule { border-top: 1px dashed #bbb; margin: 8px 0; }
.tp-label { font-weight: 800; text-transform: uppercase; font-size: 9px; letter-spacing: .08em; margin: 4px 0; }
.tp-strong { font-weight: 800; font-size: 12px; }
.tp-body { text-align: right; }
.tp-row { text-align: right; margin: 6px 0; }
.tp-item { font-weight: 800; }
.tp-sum, .tp-total { margin-top: 3px; text-align: right; }
.tp-total {
  font-weight: 900; font-size: 13px;
  border-top: 2px solid #111; border-bottom: 2px solid #111;
  margin: 8px 0 8px auto; padding: 6px 0; display: inline-block;
}
.tp-min { font-size: 10px; font-weight: 800; color: #4f46e5; margin-top: 4px; text-align: right; }
.tp-tax { margin: 8px 0 8px auto; padding: 6px 0; border-top: 1px dashed #bbb; text-align: right; }
.tp-terms { margin-top: 10px; text-align: right; }
.tp-terms p { font-size: 9px; line-height: 1.4; margin: 0 0 7px; color: #222; }
.tp-thanks { text-align: right; margin-top: 12px; font-weight: 800; }
.tp-muted { text-align: right; color: #888; padding: 12px 0; }
