/* Reusable FairyFly product waitlist.
   Product pages provide semantic colour/radius tokens; this component owns
   fields, validation, working/duplicate/error/success states and accessibility. */
.shared-waitlist { min-height: 530px; padding: var(--card-padding-lg); border: 1px solid var(--border-default); border-radius: var(--radius-md); background: var(--surface-emphasis); box-shadow: var(--shadow-emphasis); }
.shared-waitlist .form-row { margin-bottom: 22px; }
.shared-waitlist .form-row > label:not(.form-row--checkbox label) { display: flex; justify-content: space-between; margin-bottom: 9px; color: var(--text-primary); font-size: var(--text-body-sm); font-weight: 650; }
.shared-waitlist .form-row > label span { color: var(--text-muted); font-size: var(--text-caption); font-weight: 500; }
.shared-waitlist input:not([type="checkbox"]),
.shared-waitlist select { width: 100%; min-height: 52px; padding: 12px 14px; border: 1px solid var(--border-input); border-radius: var(--radius-sm); background: var(--surface-input); color: var(--text-primary); font: inherit; }
.shared-waitlist select { appearance: none; padding-right: 42px; background-image: linear-gradient(45deg, transparent 50%, var(--text-muted) 50%), linear-gradient(135deg, var(--text-muted) 50%, transparent 50%); background-position: calc(100% - 19px) 22px, calc(100% - 13px) 22px; background-repeat: no-repeat; background-size: 6px 6px, 6px 6px; }
.shared-waitlist input::placeholder { color: var(--text-muted); }
.shared-waitlist input[aria-invalid="true"],
.shared-waitlist select[aria-invalid="true"] { border-color: var(--status-error); }
.shared-waitlist .form-row--checkbox label { display: grid; grid-template-columns: 22px 1fr; gap: 13px; align-items: start; color: var(--text-secondary); font-size: var(--text-body-sm); line-height: 1.55; cursor: pointer; }
.shared-waitlist .form-row--checkbox input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--accent-primary); }
.shared-waitlist .field-error { min-height: 18px; margin: 5px 0 0; color: var(--status-error); font-size: var(--text-body-sm); }
.shared-waitlist .form-status { min-height: 25px; margin: 14px 0 0; color: var(--text-muted); font-size: var(--text-body-sm); line-height: 1.45; }
.shared-waitlist .form-status[data-state="working"] { color: var(--accent-primary); }
.shared-waitlist .form-status[data-state="duplicate"] { color: var(--status-warning); }
.shared-waitlist .form-status[data-state="error"] { color: var(--status-error); }
.shared-waitlist button[type="submit"] { width: 100%; }
.shared-waitlist button[disabled] { cursor: progress; opacity: .68; }
.waitlist-success { display: grid; min-height: 360px; place-content: center; padding: var(--card-padding-lg); border: 1px solid var(--border-accent); border-radius: var(--radius-md); background: linear-gradient(145deg, var(--accent-soft), var(--surface-emphasis)); box-shadow: var(--shadow-emphasis); text-align: center; }
.waitlist-success[hidden] { display: none; }
.waitlist-success > span { display: grid; width: 54px; height: 54px; place-items: center; margin: 0 auto 22px; border: 1px solid var(--accent-primary); border-radius: 50%; color: var(--accent-emphasis); font-size: var(--text-heading-lg); }
.waitlist-success h3 { margin: 0 0 12px; color: var(--text-primary); font: 400 var(--text-heading-xl) var(--font-display); }
.waitlist-success p { max-width: 430px; margin: 0; color: var(--text-secondary); line-height: 1.6; }
@media (max-width: 760px) {
  .shared-waitlist { min-height: 0; padding: var(--card-padding-sm) 20px; }
  .waitlist-success { min-height: 300px; padding: var(--card-padding-md); }
}
