/* Promo codes (S14): C-01's field (G-04's states), O-17's list and its form. The form parts are apartments.css's. */

/* C-01: "Add a promo code" opens the field, without script (<details>) */
.bh-promo { margin-top: var(--space-3); }
.bh-promo-add {
  display: inline-flex; align-items: center; gap: var(--space-2); min-height: var(--target-min); margin-left: calc(var(--space-2) * -1);
  padding: 0 var(--space-2); border-radius: var(--radius-control); color: var(--primary); font-weight: var(--weight-bold); text-decoration: underline;
}
.bh-promo-form { display: grid; gap: var(--space-2); }
.bh-promo-row { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.bh-promo-row > .bh-input { flex: 1 1 140px; }
.bh-promo-input { font-family: var(--font-mono); text-transform: uppercase; }
.bh-promo-message { display: flex; gap: var(--space-2); align-items: flex-start; font-size: var(--text-small); line-height: var(--leading-small); }
.bh-promo-message.is-ok { color: var(--success-ink); }
.bh-promo-message.is-info { color: var(--info-ink); }
.bh-promo-message.is-error { color: var(--danger-ink); }

/* O-17: the long-stay discounts and the codes, one card each */
.bh-promo-list { display: grid; gap: var(--space-3); }
.bh-promo-item {
  display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding: var(--space-4);
  border: 1px solid var(--line); border-radius: var(--radius-card); background: var(--card); color: var(--ink-1); text-decoration: none; overflow-wrap: anywhere;
}
a.bh-promo-item:hover { border-color: var(--ink-2); color: var(--ink-1); }
.bh-promo-item-body { display: grid; gap: var(--space-1); min-width: 0; }
.bh-promo-item-head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.bh-promo-name { font-family: var(--font-mono); }

/* O-17's form */
.bh-promo-edit { display: grid; gap: var(--space-6); min-width: 0; }
.bh-promo-currencies { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.bh-promo-choices { display: grid; gap: var(--space-2); }
.bh-promo-choice { display: flex; align-items: flex-start; gap: var(--space-3); min-height: var(--target-min); cursor: pointer; }
.bh-promo-choice > input { flex: none; width: 24px; height: 24px; margin: 0; accent-color: var(--primary); }
.bh-promo-choice-meta { display: block; }
.bh-promo-dates { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
.bh-promo-date { max-width: 240px; }
.bh-promo-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--space-2); }
.bh-promo-stop { padding-top: var(--space-6); border-top: 1px solid var(--line); justify-items: start; }
