/* RSVP modal form styles (scoped) */
.rsvp-modal .rsvp-portal .card {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
  margin: 0;
}

.rsvp-modal .hidden {
  display: none !important;
}

.rsvp-modal .step + .step {
  margin-top: 20px;
  padding-top: 20px;
  border-top: none;
}

.rsvp-modal .form-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.rsvp-modal .field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.rsvp-modal label {
  font-weight: 600;
  font-size: 0.95rem;
}

.rsvp-modal input,
.rsvp-modal textarea,
.rsvp-modal select {
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid var(--line);
  font: inherit;
  background: rgba(252, 248, 240, 0.7);
}

.rsvp-modal textarea {
  min-height: 90px;
  resize: vertical;
}

.rsvp-modal .actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 16px;
}

.rsvp-modal .btn.ghost {
  background: transparent;
  border: 1px dashed var(--line);
  color: var(--ink);
}

.rsvp-modal .alert {
  padding: 12px 16px;
  border-radius: 12px;
  background: #fff3f0;
  border: 1px solid #f5c4b2;
  color: #8a3a1b;
  font-size: 0.95rem;
}

.rsvp-modal .alert.info {
  background: #eef3ff;
  border-color: #c9d8f0;
  color: #31415b;
}

.rsvp-modal .alert.success {
  background: #ecf7f3;
  border-color: #b9ded1;
  color: #2f5b4f;
}

.rsvp-modal .match-list {
  display: grid;
  gap: 12px;
}

.rsvp-modal .match-card {
  padding: 14px 16px;
  border-radius: 14px;
  border: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  align-items: center;
  background: rgba(255, 255, 255, 0.85);
}

.rsvp-modal .match-card strong {
  display: block;
}

.rsvp-modal .guest-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  align-items: center;
}

.rsvp-modal .guest-fields {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.rsvp-modal .guest-row button {
  padding: 6px 10px;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: #fff;
  cursor: pointer;
}

.rsvp-modal .subtle {
  color: var(--ink-soft);
  font-size: 0.9rem;
}

.rsvp-modal .inline {
  display: inline-flex;
  gap: 10px;
  align-items: center;
}

.rsvp-modal .modal {
  position: absolute;
  inset: 0;
  background: rgba(18, 17, 14, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  border-radius: 20px;
}

.rsvp-modal .modal .card {
  background: rgba(252, 248, 240, 0.98);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 20px;
  width: min(520px, 92%);
}
