/* Walk validation and registered-state UX */
.walk-card-registered {
  border-color: rgba(28,124,84,.28);
  background:
    radial-gradient(circle at 100% 0%, rgba(28,124,84,.08), transparent 32%),
    #fff;
}

#registerBtn[disabled],
#registerBtn[data-registered="1"] {
  cursor: not-allowed;
  opacity: .82;
}

.walk-card-finished {
  border-color: rgba(22,163,74,.38);
  background:
    radial-gradient(circle at 100% 0%, rgba(22,163,74,.12), transparent 32%),
    #fff;
}

.walk-finished-note {
  display: inline-flex;
  margin: 8px 0 0;
  padding: 7px 10px;
  border-radius: 999px;
  background: #dcfce7;
  color: #166534;
  font-weight: 900;
  font-size: .82rem;
}

#selfCheckinBtn[data-finished="1"] {
  background: #dcfce7;
  color: #166534;
  border: 1px solid rgba(22,163,74,.25);
  cursor: not-allowed;
}

/* Unified registration + waiver flow */
.walk-join-panel {
  overflow: hidden;
}
.walk-join-heading h2 {
  margin: .15rem 0 .35rem;
}
.walk-join-heading p:last-child {
  margin: 0 0 1rem;
}
.walk-join-status {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: .85rem;
  align-items: center;
  padding: 1rem;
  margin: 1rem 0;
  border: 1px solid rgba(15, 23, 42, .08);
  border-radius: 20px;
  background: linear-gradient(180deg, #fff, #f8fafc);
}
.walk-join-status-icon,
.walk-waiver-title > span {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 15px;
  background: #eef2f6;
  color: #344054;
  font-weight: 950;
}
.walk-join-status strong,
.walk-join-status small {
  display: block;
}
.walk-join-status small {
  margin-top: .2rem;
  color: #667085;
  line-height: 1.4;
}
.walk-join-status.is-action {
  border-color: rgba(217, 119, 6, .24);
  background: linear-gradient(180deg, #fffcf5, #fff7e6);
}
.walk-join-status.is-action .walk-join-status-icon {
  background: #fef3c7;
  color: #92400e;
}
.walk-join-status.is-ready {
  border-color: rgba(37, 99, 235, .18);
  background: linear-gradient(180deg, #fff, #eff6ff);
}
.walk-join-status.is-ready .walk-join-status-icon {
  background: #dbeafe;
  color: #1d4ed8;
}
.walk-join-status.is-complete {
  border-color: rgba(28, 124, 84, .24);
  background: linear-gradient(180deg, #fff, #ecfdf3);
}
.walk-join-status.is-complete .walk-join-status-icon {
  background: #dcfae6;
  color: #067647;
}
.walk-register-button,
.walk-waiver-submit {
  width: 100%;
  min-height: 50px;
}
.walk-waiver-register-form {
  margin-top: 1rem;
  padding: 1rem;
  border: 1px solid rgba(28, 124, 84, .16);
  border-radius: 22px;
  background: linear-gradient(180deg, #fbfffd, #fff);
}
.walk-waiver-title {
  display: flex;
  align-items: center;
  gap: .8rem;
  margin-bottom: .7rem;
}
.walk-waiver-title h3,
.walk-waiver-title p {
  margin: 0;
}
.walk-waiver-title > span {
  background: #dcfae6;
  color: #067647;
}
.walk-checkin-divider {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin: 1.35rem 0 1rem;
  color: #667085;
  font-size: .75rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.walk-checkin-divider::before,
.walk-checkin-divider::after {
  content: "";
  height: 1px;
  flex: 1;
  background: #e6e9f0;
}
@media (max-width: 640px) {
  .walk-join-status {
    align-items: start;
    padding: .9rem;
    border-radius: 18px;
  }
  .walk-waiver-register-form {
    padding: .85rem;
    margin-left: -.15rem;
    margin-right: -.15rem;
  }
}

/* Priority registration placement — keeps the waiver immediately below walk details. */
.walk-join-panel-priority {
  position: relative;
  margin-top: 1rem;
  border-color: rgba(28, 124, 84, .22);
  background:
    radial-gradient(circle at 100% 0%, rgba(28, 124, 84, .10), transparent 34%),
    linear-gradient(180deg, #ffffff, #fbfffd);
  box-shadow: 0 18px 48px rgba(15, 23, 42, .08);
}
.walk-join-panel-priority::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  border-radius: inherit;
  background: #1c7c54;
}
.walk-join-priority-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}
.walk-join-top-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: .55rem .85rem;
  border: 1px solid rgba(217, 119, 6, .18);
  border-radius: 999px;
  background: #fff7e6;
  color: #92400e;
  font-size: .78rem;
  font-weight: 950;
  white-space: nowrap;
}
.walk-join-panel-priority.is-ready .walk-join-top-badge {
  border-color: rgba(37, 99, 235, .16);
  background: #eff6ff;
  color: #1d4ed8;
}
.walk-join-panel-priority.is-complete {
  border-color: rgba(28, 124, 84, .28);
  background:
    radial-gradient(circle at 100% 0%, rgba(28, 124, 84, .11), transparent 34%),
    linear-gradient(180deg, #ffffff, #f0fdf4);
}
.walk-join-panel-priority.is-complete .walk-join-top-badge {
  border-color: rgba(28, 124, 84, .18);
  background: #dcfae6;
  color: #067647;
}
.walk-join-panel-priority .walk-waiver-register-form {
  max-width: 1040px;
}
.photo-upload-panel-wide {
  margin-top: 1rem;
}

@media (max-width: 700px) {
  .walk-join-panel-priority {
    margin-top: .75rem;
    padding-top: 1rem;
  }
  .walk-join-priority-head {
    display: grid;
    gap: .7rem;
  }
  .walk-join-top-badge {
    justify-self: start;
  }
  .walk-join-panel-priority .walk-waiver-register-form {
    margin-top: .8rem;
  }
}
