.promo-code-card {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 12px;
  overflow: hidden;
  padding: 16px 18px;
  border: 1px solid oklch(0.7 0.12 82 / 0.42);
  border-radius: 14px;
  background:
    linear-gradient(118deg, oklch(0.38 0.075 82 / 0.2), transparent 46%),
    oklch(0.135 0.024 var(--brand-hue) / 0.9);
  box-shadow: inset 0 0 38px oklch(0.7 0.1 82 / 0.05), 0 20px 44px oklch(0.025 0.012 70 / 0.48);
}
.promo-code-card__copy { min-width: 0; }
.promo-code-card h2 { margin: 4px 0 3px; font-size: 18px; }
.promo-code-card__copy p { margin: 0; color: var(--color-muted); font-size: 13px; line-height: 1.45; }
.promo-code-card__form { min-width: 0; flex: 0 1 55%; }
.promo-code-card__form label { display: block; margin-bottom: 4px; color: var(--color-muted); font-size: 12px; }
.promo-code-card__controls { display: flex; gap: 8px; }
.promo-code-card__controls input {
  width: 100%; min-width: 0; min-height: 44px; padding: 8px;
  border: 1px solid var(--color-border); border-radius: 8px;
  background: var(--color-bg); color: var(--color-fg); font: inherit;
}
.promo-code-card__controls input:focus-visible { outline: 2px solid var(--color-primary-strong); outline-offset: 2px; }
.promo-code-card__controls button { min-height: 44px; padding-inline: 12px; white-space: nowrap; }
.promo-code-card__controls button svg { display: none; }
.promo-code-card__message { margin: 4px 0 0; color: var(--color-fg); font-size: 12px; line-height: 1.35; }
.promo-code-card__message:empty { display: none; }
@media (max-width: 520px) {
  .promo-code-card { gap: 8px; }
  .promo-code-card__copy { flex: 0 0 80px; }
  .promo-code-card__copy p { display: none; }
  .promo-code-card__form { flex: 1 1 0; }
  .promo-code-card__controls input { flex: 1 1 0; }
  .promo-code-card__controls button { width: 44px; min-width: 44px; padding-inline: 0; }
  .promo-code-card__controls button span { display: none; }
  .promo-code-card__controls button svg { display: block; }
}
