.voucher-form { display: grid; gap: 16px; margin: 18px 0 28px; }
.voucher-primary {
  display: grid;
  gap: 14px;
  padding: 16px;
  border: 1px solid var(--line-strong, #456153);
  border-radius: 14px;
  background: rgba(47, 158, 119, 0.08);
}
.voucher-primary > .field > span:first-child,
.voucher-primary > label > span:first-child {
  color: var(--text, #e8efe9);
  font-size: 15px;
  font-weight: 650;
}
.voucher-primary input,
.voucher-primary select,
.voucher-primary textarea {
  font-size: 16px;
  min-height: 44px;
  width: 100%;
}
.voucher-primary textarea { min-height: 96px; resize: vertical; }
.voucher-secondary {
  display: grid;
  gap: 12px;
}
.voucher-secondary .field { margin: 0; }
.voucher-code-row { display: flex; gap: 8px; align-items: center; }
.voucher-code-row input { flex: 1; min-width: 0; }
.voucher-code-row .btn { width: auto; flex: 0 0 auto; }
.voucher-list { display: grid; gap: 12px; }
.voucher-card {
  border: 1px solid var(--line, #2d3a33);
  border-radius: 12px;
  padding: 14px;
  background: var(--bg-soft, #1e2823);
}
.voucher-card-head { display: flex; justify-content: space-between; gap: 8px; align-items: center; }
.voucher-code {
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 16px;
  letter-spacing: 0.02em;
}
.voucher-status {
  display: inline-block;
  border-radius: 999px;
  padding: 3px 8px;
  font-size: 12px;
  font-weight: 650;
  background: var(--bg-deep, #0c100e);
  color: var(--muted, #93a399);
}
.voucher-status.is-active { color: #d7f5e8; background: #1d6b4a; }
.voucher-status.is-inactive { color: #f3d7d7; background: #6b3030; }
.voucher-status.is-expired, .voucher-status.is-limit { color: #f8e7c4; background: #6b5420; }
.voucher-card p { margin: 6px 0; }
.voucher-redeem { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; }
.voucher-redeem .field { flex: 1 1 220px; margin: 0; }
.voucher-redeem .field input { font-size: 16px; min-height: 44px; }
.voucher-message { min-height: 1.2em; margin: 8px 0 0; font-weight: 600; }
.voucher-message.is-ok { color: #8ddebe; }
.voucher-message.is-error { color: #f0a8a8; }
.voucher-redemptions { margin-top: 16px; }
.voucher-redeem-panel { max-width: 720px; margin: 0 auto 28px; }
.history-list { display: grid; margin-top: 8px; }
.history-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2px 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--line, #2d3a33);
}
.history-when { color: var(--muted, #93a399); font-size: 12px; font-family: "IBM Plex Mono", ui-monospace, monospace; }
.history-detail { grid-column: 1; overflow-wrap: anywhere; }
.history-amount { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-variant-numeric: tabular-nums; white-space: nowrap; }
.voucher-empty { margin: 0; }

@media (min-width: 860px) {
  .voucher-primary { grid-template-columns: 1fr 1fr; }
  .voucher-primary #voucherEmailsWrap { grid-column: 1 / -1; }
  .voucher-secondary { grid-template-columns: 1.4fr 0.7fr 1fr; align-items: start; }
  .voucher-list { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
  .voucher-code-row { flex-direction: column; align-items: stretch; }
  .voucher-card .btn-row { flex-direction: column; }
  .voucher-card .btn-row .btn { width: 100%; }
}
/* 15.17 unlimited pass */
.unlimited-pass{display:flex;flex-direction:column;gap:4px;padding:12px 14px;margin:6px 0 12px;border-radius:10px;border:1px solid rgba(52,211,153,.55);background:rgba(16,185,129,.12)}
.unlimited-pass strong{color:#34d399}
.voucher-kind-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;background:rgba(52,211,153,.18);color:#34d399;margin-left:6px}
