#frac-promotion-message { white-space: pre-wrap; overflow-wrap: anywhere; }
#frac-promotion-amount { font-size: 1.1rem; font-weight: 700; color: #164b36; }
.frac-promotion-confetti { position: fixed; inset: 0; pointer-events: none; z-index: 1100; overflow: hidden; }
.frac-promotion-confetti i { position: absolute; bottom: -24px; width: 9px; height: 22px; border-radius: 2px; }
.frac-promotion-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.frac-promotion-form fieldset { grid-column: 1 / -1; min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.frac-promotion-form fieldset[hidden] { display: none; }
.frac-promotion-form fieldset fieldset { grid-column: 1 / -1; }
.frac-promotion-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.frac-promotion-scroll { max-height: 420px; overflow: auto; margin: 16px 0; }
.frac-promotion-table { width: 100%; border-collapse: collapse; }
.frac-promotion-table th, .frac-promotion-table td { padding: 12px; border-bottom: 1px solid var(--frac-border); text-align: left; }
.frac-promotion-table th { position: sticky; top: 0; background: #f7f5ef; }
.frac-promotion-table input { width: 110px; }
.frac-promotion-entry-reason { display: block; margin-top: 5px; font-size: 12px; line-height: 1.5; color: #36515a; }
.frac-promotion-stock-summary { display: flex; flex-wrap: wrap; gap: 12px 32px; padding: 14px 18px; margin: 16px 0; background: #eee5cc; border: 1px solid var(--frac-border); }
.frac-promotion-stock-summary p { margin: 0; font-size: 16px; }
.frac-promotion-stock-summary strong { font-size: 22px; margin-left: 8px; }
#promotion-payout-rows td:not(:first-child) { white-space: nowrap; }
#promotion-confirm-payout[hidden] { display: none; }
#promotion-test-email[hidden] { display: none; }
#promotion-email-message { width: 100%; padding: 12px; border: 1px solid var(--frac-border); font: inherit; box-sizing: border-box; }
.frac-promotion-email-choice { display: inline-flex; align-items: center; gap: 8px; margin: 8px 0; }
.frac-promotion-email-choice input { width: 18px; height: 18px; }
#promotion-run dialog { width: min(850px, 94vw); max-height: 90vh; overflow: auto; padding: 24px; border: 1px solid var(--frac-border); background: #f7f5ef; color: #00323e; }
#promotion-run dialog::backdrop { background: #0008; }
#promotion-run dialog > .frac-button { margin-right: 8px; margin-top: 8px; }
#promotion-search-results { display: grid; gap: 8px; }
#promotion-run > label { display: block; margin-top: 16px; }
#promotion-run > label input, #promotion-user-search, #promotion-event-name, #promotion-entrant-filter {
  display: block; width: 100%; max-width: 600px; padding: 12px; margin: 8px 0 16px;
  border: 1px solid var(--frac-border); border-radius: 4px; font: inherit; box-sizing: border-box;
}
.frac-promotion-table td { overflow-wrap: anywhere; }
@media (max-width: 600px) {
  #promotion-payout-dialog > .frac-promotion-actions { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; }
  #promotion-payout-dialog .frac-promotion-email-choice { font-size: 12px; }
  #promotion-payout-dialog thead { display: none; }
  #promotion-payout-rows tr { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid var(--frac-border); padding: 12px 0; }
  #promotion-payout-rows td { border: 0; padding: 6px 0; }
  #promotion-payout-rows td:first-child { grid-column: 1 / -1; }
  #promotion-payout-rows td[data-label]::before { content: attr(data-label) ': '; font-size: 12px; }
  #promotion-entrant-rows tr { display: grid; grid-template-columns: 1fr auto; padding: 12px 0; border-bottom: 1px solid var(--frac-border); }
  #promotion-entrant-rows td { border: 0; padding: 6px 0; }
  #promotion-entrant-rows td:first-child { grid-column: 1 / -1; }
  #promotion-entrant-rows td:nth-child(2)::before { content: 'Entries: '; }
  #promotion-run > .frac-promotion-scroll thead { display: none; }
}
.frac-promotion-form fieldset > :is(legend, p) { grid-column: 1 / -1; }
.frac-promotion-form fieldset > label { display: flex; flex-direction: column; gap: 8px; min-width: 0; font-size: 13px; font-weight: 600; }
#promotion-animation-status { white-space: normal; overflow-wrap: anywhere; }
#promotion-test-animation { align-self: flex-start; max-width: 100%; white-space: normal; }
.frac-promotion-form textarea { width: 100%; min-height: 120px; padding: 12px; border: 1px solid var(--frac-border); border-radius: 4px; font: inherit; background: white; box-sizing: border-box; }
.frac-promotion-form input[type=checkbox] { width: 18px; height: 18px; }
#frac-promotion-modal .modal-content { border: 0; border-radius: 16px; overflow: hidden; box-shadow: 0 24px 80px #0004; }
#frac-promotion-modal .modal-header { padding: 24px; background: #f7f5ef; border: 0; }
#frac-promotion-modal .modal-title { font-size: 24px; color: #173f2a; }
#frac-promotion-modal .modal-body, #frac-promotion-modal .modal-footer { padding: 24px; }
#frac-promotion-modal .modal-footer { border: 0; padding-top: 0; }
#frac-promotion-modal .modal-footer .frac-button { flex: 1 1 160px; min-height: 48px; margin: 0; display: inline-flex; align-items: center; justify-content: center; font: inherit; font-weight: 600; line-height: 1.25; padding: 14px 20px; text-align: center; }
#frac-promotion-modal .modal-footer { gap: 12px; }
@media (max-width: 600px) {
  .frac-promotion-form, .frac-promotion-form fieldset { grid-template-columns: 1fr; }
}
