.weddingpress-rsvp-app,
.weddingpress-savethedate-app,
.weddingpress-gate,
.weddingpress-countdown,
.weddingpress-venue,
.weddingpress-colors {
	box-sizing: border-box;
	font-family: inherit;
	color: inherit;
	max-width: 640px;
}

.weddingpress-rsvp-app *,
.weddingpress-savethedate-app *,
.weddingpress-gate *,
.weddingpress-countdown *,
.weddingpress-venue *,
.weddingpress-colors * {
	box-sizing: border-box;
}

.weddingpress-tabs {
	margin-bottom: 1.5em;
}

.weddingpress-top-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em 1.5em;
	font-size: 0.95em;
}

.weddingpress-sub-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4em 1.2em;
	margin-top: 0.6em;
	padding-top: 0.6em;
	border-top: 1px solid rgba(0, 0, 0, 0.1);
	font-size: 0.85em;
}

.weddingpress-tab {
	opacity: 0.5;
}

.weddingpress-tab.is-active {
	font-weight: 700;
	opacity: 1;
}

.weddingpress-tab.is-done {
	opacity: 0.75;
}

.weddingpress-tab.is-clickable {
	cursor: pointer;
	text-decoration: underline;
}

.weddingpress-tab.is-clickable:hover,
.weddingpress-tab.is-clickable:focus {
	opacity: 1;
}

.weddingpress-step-panel label {
	display: block;
	margin-bottom: 1em;
}

.weddingpress-event-detail-card {
	margin-bottom: 1.5em;
}

.weddingpress-event-when {
	font-weight: 600;
	margin: 0 0 0.5em;
}

.weddingpress-event-venue {
	margin: 0 0 0.5em;
}

.weddingpress-event-dress-code {
	opacity: 0.85;
	margin: 0 0 0.5em;
}

.weddingpress-event-description {
	opacity: 0.85;
	margin: 0 0 0.5em;
}

.weddingpress-event-note {
	margin: 0.5em 0 0;
	padding: 0.6em 0.9em;
	border-left: 3px solid currentColor;
	background: rgba(0, 0, 0, 0.04);
	font-weight: 600;
}

.weddingpress-step-panel input[type="text"],
.weddingpress-step-panel input[type="email"],
.weddingpress-step-panel input[type="password"],
.weddingpress-step-panel select,
.weddingpress-step-panel textarea {
	width: 100%;
	max-width: 360px;
	padding: 0.5em;
	margin-top: 0.3em;
}

.weddingpress-step-panel button {
	cursor: pointer;
	padding: 0.6em 1.4em;
}

.weddingpress-step-actions {
	display: flex;
	align-items: center;
	gap: 1em;
	margin-top: 1em;
}

.weddingpress-back-button {
	background: transparent;
	border: 1px solid currentColor;
	color: inherit;
	opacity: 0.75;
}

.weddingpress-back-button:hover {
	opacity: 1;
}

.weddingpress-result-list {
	list-style: none;
	margin: 1em 0 0;
	padding: 0;
}

.weddingpress-result-item {
	margin-bottom: 0.5em;
}

.weddingpress-result-select {
	width: 100%;
	text-align: left;
	padding: 0.75em 1em;
	cursor: pointer;
	background: transparent;
	border: 1px solid currentColor;
}

.weddingpress-result-address {
	opacity: 0.75;
	font-size: 0.9em;
}

.weddingpress-attendee-row {
	border: 1px solid rgba(0, 0, 0, 0.15);
	padding: 1em;
	margin-bottom: 1em;
}

.weddingpress-attendee-name {
	font-weight: 700;
	margin-bottom: 0.5em;
}

.weddingpress-attend-toggle label {
	display: inline-block;
	margin: 0 1.5em 0 0;
}

.weddingpress-savethedate-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1em;
	border: 1px solid rgba(0, 0, 0, 0.15);
	padding: 0.75em 1em;
	margin-bottom: 0.75em;
}

.weddingpress-savethedate-name {
	font-weight: 700;
}

.weddingpress-savethedate-confirmation {
	font-weight: 400;
	font-size: 0.85em;
	color: #4b8a4b;
	margin-top: 0.25em;
}

.weddingpress-savethedate-actions {
	display: flex;
	gap: 0.5em;
	flex-shrink: 0;
}

.weddingpress-savethedate-toggle {
	background: #ffffff;
	border: 1px solid rgba(0, 0, 0, 0.3);
	color: inherit;
	opacity: 0.7;
}

.weddingpress-savethedate-toggle.is-selected {
	background: #333333;
	border-color: #333333;
	color: #ffffff;
	opacity: 1;
}

.weddingpress-meal-fields {
	border-top: 1px solid rgba(0, 0, 0, 0.1);
	padding-top: 0.75em;
	margin-top: 0.75em;
}

.weddingpress-questions-block {
	border-top: 1px solid rgba(0, 0, 0, 0.1);
	padding-top: 1em;
	margin-top: 1em;
}

.weddingpress-question-field {
	margin-bottom: 1em;
}

.weddingpress-question-label {
	display: block;
	font-weight: 700;
	margin-bottom: 0.4em;
}

.weddingpress-question-field textarea {
	width: 100%;
}

.weddingpress-summary-questions {
	margin-bottom: 1.5em;
}

.weddingpress-summary-questions p {
	margin: 0 0 0.75em;
}

.weddingpress-notes-toggle-label {
	display: block;
	margin: 0.5em 0;
}

.weddingpress-invite-list {
	margin-bottom: 1.5em;
}

.weddingpress-invite-list-heading {
	font-weight: 700;
	margin-bottom: 0.3em;
}

.weddingpress-invite-list ul {
	margin: 0;
	padding-left: 1.2em;
}

.weddingpress-guest-name-row {
	display: flex;
	gap: 0.5em;
	margin-bottom: 0.75em;
}

.weddingpress-guest-name-row input {
	flex: 1;
	padding: 0.4em;
}

.weddingpress-summary-event {
	margin-bottom: 1.5em;
}

.weddingpress-summary-event h4 {
	margin-bottom: 0.5em;
}

.weddingpress-summary-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 1.5em;
}

.weddingpress-summary-table th,
.weddingpress-summary-table td {
	border: 1px solid rgba(0, 0, 0, 0.15);
	padding: 0.5em 0.75em;
	text-align: left;
}

.weddingpress-error {
	color: #b32d2e;
	margin-top: 0.75em;
}

.weddingpress-success {
	color: #1e7e34;
}

.weddingpress-gate-form {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 0.75em;
}

.weddingpress-colors {
	display: flex;
	gap: 0.5em;
}

.weddingpress-color-swatch {
	display: inline-block;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	border: 1px solid rgba(0, 0, 0, 0.15);
}

.weddingpress-countdown-value {
	font-size: 1.4em;
	font-weight: 700;
}
