/* Invoice payment status + PAID/UNPAID body stamps */

#estimate-document.invoice-container,
.estimate-document.invoice-container,
div.invoice-container {
  position: relative !important;
  /* allow rotated stamp to show without clipping */
  overflow: visible !important;
}

/* Kill old pseudo stamps */
#estimate-document.invoice-container.paid::before,
#estimate-document.invoice-container.paid::after,
#estimate-document.invoice-container.unpaid::before,
#estimate-document.invoice-container.unpaid::after,
.invoice-container.paid::before,
.invoice-container.paid::after,
.invoice-container.unpaid::before,
.invoice-container.unpaid::after {
  content: none !important;
  display: none !important;
}

/*
 * PAID stamp — green outline, green text, 45°, big, semi-transparent
 * JS centers horizontally and pins lowest tip to bottom of row 18
 */
.a1-paid-overlay {
  display: none !important;
  position: absolute !important;
  z-index: 60 !important;
  pointer-events: none !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  padding: 0.22em 0.48em !important;
  background: transparent !important;
  background-color: transparent !important;
  border: 5px solid #006400 !important;
  border-radius: 4px !important;
  color: #006400 !important;
  -webkit-text-fill-color: #006400 !important;
  /* ~20% larger than original stamp — not huge */
  font-size: clamp(3rem, 9.5vw, 6rem) !important;
  font-weight: 900 !important;
  letter-spacing: 0.12em !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  box-shadow: none !important;
  text-shadow: none !important;
  opacity: 0.4 !important;
  transform: translateX(-50%) rotate(-45deg) !important;
  transform-origin: center center !important;
}

.a1-paid-overlay.is-visible,
#estimate-document.paid > .a1-paid-overlay,
.invoice-container.paid > .a1-paid-overlay {
  display: block !important;
}

/*
 * UNPAID stamp — flat, yellow outline, transparent fill (~0.4 opacity),
 * amount/description in BLACK; ~20% longer box; bottom on row 18 via JS
 */
.a1-unpaid-overlay {
  display: none !important;
  position: absolute !important;
  z-index: 55 !important;
  pointer-events: none !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  left: 50%;
  /* Wider rectangle across the estimate body */
  min-width: min(92%, 36rem);
  max-width: 96%;
  width: min(92%, 40rem);
  padding: 0.75rem 2rem !important;
  text-align: center;
  background: transparent !important;
  background-color: transparent !important;
  border: 5px solid #ca8a04 !important;
  border-radius: 4px !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  opacity: 0.4 !important;
  /* FLAT — no 45° */
  transform: translateX(-50%) !important;
  transform-origin: center bottom !important;
  box-shadow: none !important;
}
.a1-unpaid-overlay.is-visible { display: block !important; }
.a1-unpaid-overlay .a1-unpaid-overlay-title {
  font-size: clamp(1.75rem, 5.5vw, 2.85rem);
  font-weight: 900;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin: 0 0 0.4rem;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
}
.a1-unpaid-overlay .a1-unpaid-overlay-amount {
  font-size: clamp(1rem, 2.8vw, 1.35rem);
  font-weight: 800;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
}
.a1-unpaid-overlay .a1-unpaid-overlay-amount:empty,
.a1-unpaid-overlay .a1-unpaid-overlay-desc:empty { display: none; }
.a1-unpaid-overlay .a1-unpaid-overlay-desc {
  font-size: clamp(0.8rem, 2.2vw, 1rem);
  font-weight: 600;
  white-space: pre-wrap;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  margin-top: 0.35rem;
  max-height: 5.5rem;
  overflow: hidden;
}

/* Title chip + dropdown */
.a1-pay-status-box {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 12px;
  font-size: 0.95rem;
  font-weight: bold;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-radius: 4px;
  border: none;
  white-space: nowrap;
}
select.a1-pay-status-select,
#payment-status {
  min-width: 7.5rem;
  height: 2.35rem;
  padding: 0 0.65rem;
  border-radius: 4px;
  border: 2px solid #cbd5e1;
  font-size: 0.9rem;
  font-weight: bold;
  text-transform: uppercase;
  cursor: pointer;
  background: #fff;
  color: #000;
}
select#payment-status.a1-pay-paid,
select.a1-pay-status-select.a1-pay-paid,
.a1-pay-status-box.a1-pay-paid {
  background: #006400 !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  border: none !important;
  font-weight: bold !important;
}
/* Unpaid dropdown: LIGHT yellow — locked so nothing can darken it after load */
html body select#payment-status.a1-pay-unpaid,
html body select.a1-pay-status-select.a1-pay-unpaid,
html body select#payment-status[data-pay="not_paid"],
html body select#payment-status[data-pay="unpaid"],
html body .a1-pay-status-box.a1-pay-unpaid {
  background: #fde047 !important;
  background-color: #fde047 !important;
  background-image: none !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  border: 2px solid #fde047 !important;
  outline: none !important;
  box-shadow: none !important;
  font-weight: bold !important;
  color-scheme: light !important;
}

#unpaid-box,
.unpaid-box {
  display: none;
  width: 100%;
  margin: 0.35rem 0 0.75rem;
  padding: 0.85rem 1rem;
  background: #f8fafc;
  border: 1px solid #cbd5e1;
  box-sizing: border-box;
}
#unpaid-box.is-visible { display: block; }
/* Little UNPAID chip under dropdown — same #fde047 as dropdown only */
#unpaid-box > .unpaid-label,
#unpaid-box > .a1-unpaid-label,
#unpaid-box span.unpaid-label {
  display: inline-block;
  margin: 0 0 0.65rem;
  padding: 0.2rem 0.55rem;
  background: #fde047 !important;
  background-color: #fde047 !important;
  color: #000 !important;
  border: none !important;
  border-radius: 2px;
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
#unpaid-box .unpaid-fields { display: grid; gap: 0.65rem; }
#unpaid-box .unpaid-field-label {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  color: #475569;
  margin-bottom: 0.25rem;
  text-transform: uppercase;
}
#unpaid-box input#amount-owed,
#unpaid-box textarea#unpaid-description {
  width: 100%;
  border: 1px solid #cbd5e1;
  background: #fff;
  color: #0f172a;
  padding: 0.5rem 0.65rem;
  box-sizing: border-box;
}
#unpaid-box input#amount-owed { max-width: 14rem; height: 2.35rem; font-weight: 700; }
#unpaid-box textarea#unpaid-description { min-height: 4.5rem; resize: vertical; }

@media print {
  select.a1-pay-status-select.no-print,
  #unpaid-box { display: none !important; }
  .a1-paid-overlay,
  .a1-unpaid-overlay,
  .a1-pay-status-box {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  #estimate-document.invoice-container {
    overflow: visible !important;
  }
}
