/* All tokens are optional; component styles are scoped, including the dialog. */
.hy-coupon-manager {
  --hcm-bg: var(--coupon-bg, var(--bg-card, var(--surface, #fff)));
  --hcm-text: var(--coupon-text, var(--text-primary, var(--text, #172033)));
  --hcm-muted: var(--coupon-muted, var(--muted, var(--text2, #566175)));
  --hcm-border: var(--coupon-border, var(--border, var(--border-color, #cbd2dc)));
  --hcm-accent: var(--coupon-accent, var(--accent, var(--primary, #2455b8)));
  --hcm-soft: var(--coupon-surface, var(--surface-secondary, var(--bg, #f3f5f9)));
  color: var(--hcm-text);
  background: var(--hcm-bg);
  font: 400 .875rem/1.45 var(--coupon-font, system-ui, sans-serif);
  width: 100%;
  min-width: 0;
  container-type: inline-size;
}
.hy-coupon-manager *, .hy-coupon-manager *::before, .hy-coupon-manager *::after { box-sizing: border-box; }
.hy-coupon-manager h2, .hy-coupon-manager h3 { margin: 0; font-size: 1.25rem; line-height: 1.3; color: inherit; }
.hy-coupon-manager p { margin: .5rem 0; }
.hy-coupon-manager .hcm-header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.hy-coupon-manager .hcm-context, .hy-coupon-manager .hcm-muted { color: var(--hcm-muted); overflow-wrap: anywhere; }
.hy-coupon-manager .hcm-toolbar, .hy-coupon-manager .hcm-actions { display: flex; flex-wrap: wrap; gap: .4rem; }
.hy-coupon-manager button, .hy-coupon-manager input, .hy-coupon-manager select, .hy-coupon-manager textarea { font: inherit; color: inherit; border: 1px solid var(--hcm-border); border-radius: .4rem; background: var(--hcm-bg); min-width: 0; }
.hy-coupon-manager button { padding: .45rem .7rem; min-height: 2.25rem; cursor: pointer; white-space: normal; overflow-wrap: anywhere; }
.hy-coupon-manager button:hover:not(:disabled) { background: var(--hcm-soft); border-color: var(--hcm-accent); }
.hy-coupon-manager button:disabled { opacity: .5; cursor: not-allowed; }
.hy-coupon-manager .hcm-primary { color: var(--coupon-accent-text, #fff); background: var(--hcm-accent); border-color: var(--hcm-accent); }
.hy-coupon-manager .hcm-primary:hover:not(:disabled) { color: var(--hcm-text); }
.hy-coupon-manager :is(button, input, select, textarea):focus-visible { outline: 3px solid var(--hcm-accent); outline-offset: 2px; }
.hy-coupon-manager label { display: flex; flex-direction: column; gap: .3rem; font-weight: 600; min-width: 0; }
.hy-coupon-manager input, .hy-coupon-manager select, .hy-coupon-manager textarea { padding: .5rem; width: 100%; min-height: 2.5rem; font-weight: 400; }
.hy-coupon-manager textarea { resize: vertical; }
.hy-coupon-manager .hcm-filters { display: grid; grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr)); gap: .75rem; }
.hy-coupon-manager .hcm-message { color: var(--hcm-muted); margin: .75rem 0; }
.hy-coupon-manager .hcm-error, .hy-coupon-manager .hcm-dialog-error { color: var(--coupon-error, #a52222); background: var(--coupon-error-bg, #fff1f1); padding: .75rem; border-radius: .4rem; overflow-wrap: anywhere; }
.hy-coupon-manager [hidden] { display: none !important; }
.hy-coupon-manager .hcm-table-wrap { overflow-x: auto; border: 1px solid var(--hcm-border); border-radius: .5rem; }
.hy-coupon-manager table { border-collapse: collapse; width: 100%; text-align: left; font-size: .8125rem; }
.hy-coupon-manager th, .hy-coupon-manager td { padding: .6rem; border-bottom: 1px solid var(--hcm-border); vertical-align: top; overflow-wrap: anywhere; }
.hy-coupon-manager thead { background: var(--hcm-soft); }
.hy-coupon-manager tbody tr:last-child > * { border-bottom: 0; }
.hy-coupon-manager td > span { display: block; }
.hy-coupon-manager .hcm-code { font-weight: 700; }
.hy-coupon-manager .hcm-status { display: inline-block; border: 1px solid var(--hcm-border); border-radius: 2rem; padding: .1rem .5rem; text-transform: capitalize; background: var(--hcm-soft); }
.hy-coupon-manager .hcm-status[data-status="active"] { color: var(--coupon-success, #17603b); background: var(--coupon-success-bg, #edf8f1); }
.hy-coupon-manager .hcm-empty td { text-align: center; padding: 2rem 1rem; color: var(--hcm-muted); }
.hy-coupon-manager .hcm-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.hy-coupon-manager .hcm-dialog { color: var(--hcm-text); background: var(--hcm-bg); width: min(36rem, calc(100% - 2rem)); max-width: calc(100% - 2rem); max-height: calc(100dvh - 2rem); padding: 0; border: 1px solid var(--hcm-border); border-radius: .75rem; box-shadow: 0 1rem 4rem #0003; overflow: auto; font: inherit; }
.hy-coupon-manager .hcm-dialog::backdrop { background: #11182799; }
.hy-coupon-manager .hcm-dialog header, .hy-coupon-manager .hcm-dialog footer { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: 1rem; }
.hy-coupon-manager .hcm-dialog header { border-bottom: 1px solid var(--hcm-border); }
.hy-coupon-manager .hcm-dialog header h3 { overflow-wrap: anywhere; min-width: 0; }
.hy-coupon-manager .hcm-dialog footer { justify-content: flex-end; flex-wrap: wrap; border-top: 1px solid var(--hcm-border); }
.hy-coupon-manager .hcm-dialog-body { padding: 1rem; }
.hy-coupon-manager .hcm-dialog-body label { margin-bottom: 1rem; }
.hy-coupon-manager .hcm-dialog-body p { color: var(--hcm-muted); }
.hy-coupon-manager .hcm-check { flex-direction: row; align-items: flex-start; }
.hy-coupon-manager .hcm-check input { width: 1.2rem; min-height: 1.2rem; flex: 0 0 1.2rem; margin: .1rem .3rem 0 0; accent-color: var(--hcm-accent); }
.hy-coupon-manager .hcm-activity-list { padding-left: 1.25rem; }
.hy-coupon-manager .hcm-activity-list li { padding: .75rem 0; border-bottom: 1px solid var(--hcm-border); overflow-wrap: anywhere; }
.hy-coupon-manager .hcm-activity-list span { display: block; margin-top: .25rem; }
@container (max-width: 760px) {
  .hy-coupon-manager .hcm-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hy-coupon-manager .hcm-table-wrap { border: 0; overflow: visible; }
  .hy-coupon-manager table, .hy-coupon-manager tbody { display: block; }
  .hy-coupon-manager thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .hy-coupon-manager tbody tr { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); border: 1px solid var(--hcm-border); border-radius: .6rem; margin-bottom: .75rem; padding: .5rem; }
  .hy-coupon-manager tbody th, .hy-coupon-manager tbody td { display: block; border: 0; padding: .4rem; min-width: 0; }
  .hy-coupon-manager tbody :is(th, td)::before { content: attr(data-label); display: block; font-size: .75rem; font-weight: 500; color: var(--hcm-muted); margin-bottom: .2rem; }
  .hy-coupon-manager tbody th, .hy-coupon-manager td[data-label="Actions"], .hy-coupon-manager td[data-label="Schedule"], .hy-coupon-manager .hcm-empty td { grid-column: 1 / -1; }
  .hy-coupon-manager .hcm-code { font-size: 1rem; }
  .hy-coupon-manager button { min-height: 2.75rem; }
}
@media (max-width: 480px) {
  .hy-coupon-manager .hcm-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hy-coupon-manager .hcm-toolbar { width: 100%; }
  .hy-coupon-manager .hcm-toolbar button { flex: 1 1 auto; }
  .hy-coupon-manager input, .hy-coupon-manager select, .hy-coupon-manager textarea { font-size: 1rem; }
  .hy-coupon-manager .hcm-dialog { width: calc(100% - 1rem); max-width: calc(100% - 1rem); max-height: calc(100dvh - 1rem); }
}
