/* ==========================================================================
   EP Boarding — Services add-on (frontend)
   Styles the service date/time picker rendered inside the EP Boarding widget.
   Reuses EP Boarding's accent/line tokens (defined on .ep-boarding) and its
   .ep-boarding-cal-* calendar styles, so the appointment flow looks native on
   any host theme (dark or light). Buttons are qualified with the element type
   so an aggressive theme `button{}` rule never out-specifies them.
   ========================================================================== */

.ep-boarding-svc { margin-top: .25rem; }

/* Slots */
.ep-boarding-svc-slots { margin-top: 1rem; }
.ep-boarding-svc-slots-label {
	font-weight: 600;
	font-size: .82rem;
	letter-spacing: .02em;
	text-transform: uppercase;
	opacity: .78;
	margin: 0 0 .55rem;
}
.ep-boarding-svc-slot-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(108px, 1fr));
	gap: .5rem;
}
.ep-boarding button.ep-boarding-svc-slot {
	appearance: none; -webkit-appearance: none; cursor: pointer;
	font: inherit; line-height: 1.25; text-align: center;
	padding: .55rem .5rem;
	border: 1px solid var(--epb-line);
	border-radius: var(--epb-radius);
	background: var(--epb-field);
	color: inherit;
	transition: border-color .15s ease, background-color .15s ease;
}
.ep-boarding button.ep-boarding-svc-slot:hover {
	border-color: color-mix(in srgb, currentColor 34%, transparent);
}
.ep-boarding button.ep-boarding-svc-slot.is-selected {
	background: var(--epb-accent);
	color: var(--epb-ink);
	border-color: var(--epb-accent);
}
.ep-boarding-svc-rem { display: block; font-size: .72rem; opacity: .7; }
.ep-boarding button.ep-boarding-svc-slot.is-selected .ep-boarding-svc-rem { color: var(--epb-ink); opacity: .85; }

.ep-boarding-svc-note { opacity: .8; font-size: .9rem; padding: .4rem 0; }

/* Details + book button */
.ep-boarding-svc-details { margin-top: 1.1rem; }
.ep-boarding-svc-details .ep-boarding-row { margin-bottom: .95rem; }
.ep-boarding button.ep-boarding-svc-book {
	appearance: none; -webkit-appearance: none; cursor: pointer;
	font: inherit; font-weight: 700; line-height: 1.2;
	width: 100%;
	margin-top: .35rem;
	padding: .8rem 1rem;
	border: 1px solid var(--epb-accent);
	border-radius: var(--epb-radius);
	background: var(--epb-accent);
	color: var(--epb-ink);
	transition: opacity .15s ease;
}
.ep-boarding button.ep-boarding-svc-book:hover { opacity: .9; }
.ep-boarding button.ep-boarding-svc-book:disabled { opacity: .6; cursor: default; }

/* Messages + confirmation */
.ep-boarding-svc-msg { margin-top: .8rem; font-size: .95rem; line-height: 1.45; }
.ep-boarding-svc-msg:empty { display: none; }
.ep-boarding-svc-msg--err {
	color: var(--epb-err);
	background: var(--epb-err-panel);
	border: 1px solid var(--epb-err-line);
	border-radius: var(--epb-radius);
	padding: .75rem .9rem;
	font-weight: 600;
}
.ep-boarding-svc-done {
	color: var(--epb-ok);
	background: var(--epb-ok-panel);
	border: 1px solid var(--epb-ok-line);
	border-radius: var(--epb-radius);
	padding: 1rem 1.1rem;
	font-weight: 600;
	line-height: 1.5;
}
