.wwa-app {
	--wwa-gap: clamp(16px, 2.5vw, 28px);
	width: 100%;
	max-width: 980px;
	font: inherit;
	color: inherit;
}

.wwa-app *, .wwa-app *::before, .wwa-app *::after { box-sizing: border-box; }
.wwa-heading { margin-bottom: var(--wwa-gap); }
.wwa-heading h2, .wwa-time-card h3 { color: inherit; font-family: inherit; }
.wwa-heading h2 { margin: 0 0 8px; font-size: clamp(1.45rem, 2vw, 2rem); }
.wwa-heading p, .wwa-muted { margin: 0; opacity: .68; }

.wwa-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
	gap: var(--wwa-gap);
	align-items: start;
}

.wwa-card, .wwa-form {
	border: 1px solid color-mix(in srgb, currentColor 18%, transparent);
	border-radius: 12px;
	padding: clamp(16px, 2.4vw, 24px);
	background: transparent;
}

.wwa-calendar-header {
	display: grid;
	grid-template-columns: 42px 1fr 42px;
	align-items: center;
	gap: 8px;
	margin-bottom: 16px;
	text-align: center;
}

.wwa-nav, .wwa-day, .wwa-submit, .wwa-range select { font: inherit; }

.wwa-nav {
	min-height: 40px;
	border: 1px solid color-mix(in srgb, currentColor 18%, transparent);
	border-radius: 8px;
	background: transparent;
	color: inherit;
	cursor: pointer;
}
.wwa-nav:disabled { opacity: .3; cursor: default; }

.wwa-weekdays, .wwa-days {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 6px;
}
.wwa-weekdays {
	margin-bottom: 6px;
	font-size: .78em;
	opacity: .6;
	text-align: center;
}

.wwa-day {
	aspect-ratio: 1;
	min-width: 0;
	border: 1px solid transparent;
	border-radius: 8px;
	background: transparent;
	color: inherit;
	cursor: pointer;
}
.wwa-day:hover:not(:disabled), .wwa-day:focus-visible:not(:disabled) { border-color: currentColor; }
.wwa-day.is-selected {
	background: #c62026;
	border-color: #c62026;
	color: #fff;
	outline: 2px solid #c62026;
	outline-offset: -3px;
}
.wwa-day.is-today { text-decoration: underline; text-underline-offset: 3px; }
.wwa-day.is-unavailable,
.wwa-day:disabled {
	background: #e5e5e5;
	border-color: #e5e5e5;
	color: #8b8b8b;
	opacity: 1;
	cursor: default;
}
.wwa-day.is-selected:disabled {
	background: #e5e5e5;
	border-color: #e5e5e5;
	color: #8b8b8b;
	outline: none;
}
.wwa-day.is-empty { visibility: hidden; }

.wwa-time-card h3 { margin-top: 0; }

.wwa-range {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}
.wwa-range label {
	display: grid;
	gap: 6px;
	font-weight: 600;
}
.wwa-range select {
	width: 100%;
	min-height: 44px;
	padding: 8px 10px;
	color: inherit;
	background: transparent;
	border: 1px solid color-mix(in srgb, currentColor 28%, transparent);
	border-radius: 8px;
}
.wwa-time-note { margin-top: 12px; }

.wwa-form { margin-top: var(--wwa-gap); }
.wwa-selected-summary { margin-bottom: 18px; font-weight: 600; }

.wwa-fields {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px 18px;
}
.wwa-fields p { margin: 0; }
.wwa-fields label { display: grid; gap: 6px; font: inherit; }

.wwa-fields input, .wwa-fields textarea {
	width: 100%;
	font: inherit;
	color: inherit;
	background: transparent;
	border: 1px solid color-mix(in srgb, currentColor 28%, transparent);
	border-radius: 8px;
	padding: 10px 12px;
}
.wwa-full { grid-column: 1 / -1; }

.wwa-turnstile-wrap { margin-top: 18px; min-height: 65px; }
.wwa-submit { margin-top: 14px; min-height: 44px; padding: 10px 18px; cursor: pointer; }
.wwa-submit:disabled { opacity: .55; cursor: not-allowed; }
.wwa-message { margin-top: 12px; }
.wwa-message.is-error { font-weight: 600; }

.wwa-hp {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

@media (max-width: 720px) {
	.wwa-layout, .wwa-fields { grid-template-columns: 1fr; }
}

@media (max-width: 460px) {
	.wwa-card, .wwa-form { padding: 14px; }
	.wwa-weekdays, .wwa-days { gap: 3px; }
	.wwa-range { grid-template-columns: 1fr; }
}
