/* GHS member selector - intentionally scoped to beat common Event Tickets/theme rules. */
[id^="ghs-ticket-selector-"] {
  box-sizing:border-box;
  margin:18px 0 20px;
  padding:22px;
  border:1px solid #e3e7ec;
  border-radius:14px;
  background:#fff;
  box-shadow:0 6px 20px rgba(18,31,53,.07);
  font-family:inherit;
}
[id^="ghs-ticket-selector-"] *,
[id^="ghs-ticket-selector-"] *::before,
[id^="ghs-ticket-selector-"] *::after { box-sizing:border-box; }
[id^="ghs-ticket-selector-"] .ghs-ticket-selector__header {
  display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:17px;
}
[id^="ghs-ticket-selector-"] .ghs-ticket-selector__eyebrow {
  margin-bottom:5px; font-size:11px; font-weight:800; letter-spacing:.12em; color:#6b6db1;
}
[id^="ghs-ticket-selector-"] .ghs-ticket-selector__title {
  margin:0 0 5px; font-size:20px; line-height:1.25; font-weight:700; color:#20242a;
}
[id^="ghs-ticket-selector-"] .ghs-ticket-selector__help {
  margin:0; font-size:13px; line-height:1.5; color:#707780;
}
[id^="ghs-ticket-selector-"] .ghs-ticket-selector__badge {
  flex:0 0 auto; min-width:92px; padding:8px 12px; border-radius:999px; text-align:center;
  background:#f3f5fb; color:#55588e;
}
[id^="ghs-ticket-selector-"] .ghs-ticket-selector__badge-number { display:block; font-size:18px; font-weight:800; line-height:1; }
[id^="ghs-ticket-selector-"] .ghs-ticket-selector__badge-text { display:block; margin-top:3px; font-size:11px; font-weight:600; }
[id^="ghs-ticket-selector-"] .ghs-ticket-selector__list {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px;
}
[id^="ghs-ticket-selector-"] .ghs-ticket-person {
  position:relative; display:flex; align-items:center; gap:12px; min-height:62px; padding:12px 14px;
  border:1px solid #e2e6eb; border-radius:11px; background:#fff; cursor:pointer;
  transition:border-color .15s ease,background .15s ease,box-shadow .15s ease,transform .15s ease;
}
[id^="ghs-ticket-selector-"] .ghs-ticket-person:hover { border-color:#b8bdc7; transform:translateY(-1px); }
[id^="ghs-ticket-selector-"] .ghs-ticket-person.is-selected {
  border-color:#6f71b6; background:#f7f7fd; box-shadow:0 0 0 1px #6f71b6 inset;
}
[id^="ghs-ticket-selector-"] .ghs-ticket-person:has(.ghs-ticket-person__input:disabled) { opacity:.52; cursor:not-allowed; }
[id^="ghs-ticket-selector-"] .ghs-ticket-person__input {
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  margin:0 !important;
  padding:0 !important;
  opacity:0 !important;
  pointer-events:none !important;
}
[id^="ghs-ticket-selector-"] .ghs-ticket-person__box {
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:22px !important;
  min-width:22px !important;
  height:22px !important;
  min-height:22px !important;
  flex:0 0 22px !important;
  margin:0 !important;
  padding:0 !important;
  border:2px solid #8f969f !important;
  border-radius:5px !important;
  background:#fff !important;
  box-shadow:none !important;
  color:transparent !important;
  visibility:visible !important;
}
[id^="ghs-ticket-selector-"] .ghs-ticket-person.is-selected .ghs-ticket-person__box {
  border-color:#6f71b6 !important;
  background:#6f71b6 !important;
}
[id^="ghs-ticket-selector-"] .ghs-ticket-person.is-selected .ghs-ticket-person__box::after {
  content:'✓' !important;
  display:block !important;
  font-size:14px !important;
  line-height:18px !important;
  font-weight:800 !important;
  color:#fff !important;
  visibility:visible !important;
}
[id^="ghs-ticket-selector-"] .ghs-ticket-person__check {
  display:none !important;
}
[id^="ghs-ticket-selector-"] .ghs-ticket-person__content { min-width:0; }
[id^="ghs-ticket-selector-"] .ghs-ticket-person__name {
  display:block; font-size:14px; font-weight:700; line-height:1.3; color:#262a30; word-break:break-word;
}
[id^="ghs-ticket-selector-"] .ghs-ticket-person__meta { display:block; margin-top:3px; font-size:11px; color:#858b94; }
[id^="ghs-ticket-selector-"] .ghs-ticket-selector__footer {
  display:flex; align-items:center; justify-content:space-between; gap:15px; margin-top:15px;
  padding-top:14px; border-top:1px solid #edf0f3;
}
[id^="ghs-ticket-selector-"] .ghs-ticket-selector__status {
  display:flex; align-items:center; gap:8px; font-size:13px; font-weight:700; color:#60666e;
}
[id^="ghs-ticket-selector-"] .ghs-ticket-selector__status-dot {
  width:7px; height:7px; border-radius:50%; background:#aeb4bc;
}
[id^="ghs-ticket-selector-"] .ghs-ticket-selector__status.is-ready .ghs-ticket-selector__status-dot { background:#35a66a; }
[id^="ghs-ticket-selector-"] .ghs-ticket-selector__status.is-ready .ghs-ticket-selector__status-text { color:#277d50; }
[id^="ghs-ticket-selector-"] .ghs-ticket-selector__limit { font-size:12px; color:#858b94; text-align:right; }
.event-tickets .tribe-tickets-loader__dots { display:none !important; }
@media (max-width:640px) {
  [id^="ghs-ticket-selector-"] { padding:16px; }
  [id^="ghs-ticket-selector-"] .ghs-ticket-selector__header,
  [id^="ghs-ticket-selector-"] .ghs-ticket-selector__footer { flex-direction:column; align-items:stretch; }
  [id^="ghs-ticket-selector-"] .ghs-ticket-selector__badge { align-self:flex-start; }
  [id^="ghs-ticket-selector-"] .ghs-ticket-selector__list { grid-template-columns:1fr; }
  [id^="ghs-ticket-selector-"] .ghs-ticket-selector__limit { text-align:left; }
}

.ghs-ticket-person.is-purchased { opacity:.58; cursor:not-allowed; }
.ghs-ticket-person__purchased { display:block; margin-top:4px; font-size:11px; font-weight:700; color:#858b94; }

.ghs-ticket-person__purchased{display:block;margin-top:4px;font-size:11px;font-weight:700;color:#858b94}.ghs-ticket-person.is-purchased{opacity:.58;background:#f6f7f9;border-color:#d7dbe1!important;cursor:not-allowed}


/* V17.1 checkbox visual fix ONLY.
 * The checkbox input/state logic is intentionally untouched.
 * Event Tickets/theme CSS can hide the custom checkmark; these scoped rules
 * make the existing .ghs-ticket-person__box and __check visible.
 */
.tribe-common .ghs-ticket-person .ghs-ticket-person__box,
.tribe-common .ghs-ticket-person__box {
  position: relative !important;
  display: inline-flex !important;
  flex: 0 0 22px !important;
  width: 22px !important;
  height: 22px !important;
  min-width: 22px !important;
  min-height: 22px !important;
  box-sizing: border-box !important;
  align-items: center !important;
  justify-content: center !important;
  border: 2px solid #8b92a0 !important;
  border-radius: 5px !important;
  background: #ffffff !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.tribe-common .ghs-ticket-person .ghs-ticket-person__check,
.ghs-ticket-person .ghs-ticket-person__check {
  display: none !important;
  width: 100% !important;
  height: 100% !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 15px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  visibility: visible !important;
}

/* Checked state: use the EXISTING input, so no JS logic changes. */
.tribe-common .ghs-ticket-person .ghs-ticket-person__input:checked + .ghs-ticket-person__box,
.ghs-ticket-person .ghs-ticket-person__input:checked + .ghs-ticket-person__box {
  border-color: #6f6db1 !important;
  background: #6f6db1 !important;
}

.tribe-common .ghs-ticket-person .ghs-ticket-person__input:checked + .ghs-ticket-person__box .ghs-ticket-person__check,
.ghs-ticket-person .ghs-ticket-person__input:checked + .ghs-ticket-person__box .ghs-ticket-person__check {
  display: inline-flex !important;
  color: #ffffff !important;
}

/* Purchased/disabled state remains visibly disabled. */
.tribe-common .ghs-ticket-person.is-purchased .ghs-ticket-person__box,
.ghs-ticket-person.is-purchased .ghs-ticket-person__box {
  border-color: #b9bec7 !important;
  background: #eef0f3 !important;
}

.tribe-common .ghs-ticket-person.is-purchased .ghs-ticket-person__check,
.ghs-ticket-person.is-purchased .ghs-ticket-person__check {
  display: none !important;
}
