/* com_bookpro frontend styles */

/* Pin the colour scheme on native form controls so a browser-forced dark mode
   (notably Edge's "dark mode for web content") can't render the chosen station
   dark-on-dark and make the select look empty after choosing. */
.bookpro-search .form-select,
.bookpro-search .form-control,
.bookpro-checkout-form .form-select,
.bookpro-checkout-form .form-control {
	color-scheme: light;
	background-color: #fff;
	color: #1a2230;
}

.bookpro-result-card .bookpro-result-price .h5 {
	color: var(--bs-primary, #0d6efd);
}

.bookpro-result-times .h4 {
	font-variant-numeric: tabular-nums;
}

.bookpro-seatmap {
	display: grid;
	gap: .35rem;
	justify-content: center;
}

.bookpro-seat {
	inline-size: 2.25rem;
	block-size: 2.25rem;
	border: 1px solid var(--bs-border-color, #ccc);
	border-radius: .35rem;
	background: var(--bs-body-bg, #fff);
	cursor: pointer;
	font-size: .75rem;
}

/* Selected: colour + a solid ring + a check glyph, so state is not colour-only. */
.bookpro-seat[aria-selected="true"],
.bookpro-seat.is-selected {
	background: var(--bs-primary, #0d6efd);
	color: #fff;
	border-width: 2px;
	border-color: var(--bs-primary, #0d6efd);
	box-shadow: 0 0 0 2px var(--bs-body-bg, #fff), 0 0 0 4px var(--bs-primary, #0d6efd);
}

.bookpro-seat[aria-selected="true"]::after,
.bookpro-seat.is-selected::after {
	content: "\2713"; /* ✓ */
	position: absolute;
	inset-block-start: -.35rem;
	inset-inline-end: -.35rem;
	font-size: .7rem;
}

/* Taken: greyed AND a diagonal hatch pattern + not-allowed cursor. */
.bookpro-seat[aria-disabled="true"],
.bookpro-seat[disabled],
.bookpro-seat.is-taken {
	background-color: var(--bs-secondary-bg, #e9ecef);
	background-image: repeating-linear-gradient(
		45deg,
		transparent,
		transparent 3px,
		rgba(0, 0, 0, .28) 3px,
		rgba(0, 0, 0, .28) 5px
	);
	color: var(--bs-secondary-color, #6c757d);
	cursor: not-allowed;
}

/* Accessible seat: a visible wheelchair glyph, not colour alone. */
.bookpro-seat {
	position: relative;
}

.bookpro-seat.is-accessible {
	border-color: var(--bs-info, #0dcaf0);
}

.bookpro-seat.is-accessible::before {
	content: "\267F"; /* ♿ */
	position: absolute;
	inset-block-end: -.4rem;
	inset-inline-start: -.35rem;
	font-size: .7rem;
}

/* Keep keyboard focus clearly visible on the roving-tabindex grid. */
.bookpro-seat:focus-visible {
	outline: 3px solid var(--bs-warning, #ffc107);
	outline-offset: 2px;
}

.bookpro-hold-timer {
	font-variant-numeric: tabular-nums;
	font-weight: 600;
}

/* ---- Operator portal ---- */
.bookpro-operator-portal { display: grid; grid-template-columns: 232px minmax(0, 1fr); gap: 1.5rem; align-items: start; }
@media (max-width: 720px) { .bookpro-operator-portal { grid-template-columns: 1fr; } }
.bookpro-op-nav { background: var(--bs-body-bg, #fff); border: 1px solid var(--bs-border-color, #dee2e6); border-radius: .6rem; overflow: hidden; position: sticky; top: 1rem; }
.bookpro-op-brand { padding: 1rem 1rem .8rem; border-bottom: 1px solid var(--bs-border-color, #dee2e6); }
.bookpro-op-brand-name { display: block; font-weight: 700; }
.bookpro-op-brand-sub { display: block; font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: var(--bs-secondary-color, #6c757d); }
.bookpro-op-nav ul { list-style: none; margin: 0; padding: .4rem; }
.bookpro-op-nav a { display: flex; align-items: center; gap: .6rem; padding: .55rem .7rem; border-radius: .4rem; color: inherit; text-decoration: none; font-size: .95rem; }
.bookpro-op-nav a:hover { background: var(--bs-secondary-bg, #eef1f4); }
.bookpro-op-nav a.is-active { background: var(--bs-primary, #0d6efd); color: #fff; }
.bookpro-op-main { min-width: 0; }
.bookpro-op-title { margin: 0 0 1.2rem; }
.bookpro-op-subtitle { margin: 1.8rem 0 .8rem; font-size: 1.15rem; }
.bookpro-op-kpis { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .8rem; }
.bookpro-op-kpi { background: var(--bs-body-bg, #fff); border: 1px solid var(--bs-border-color, #dee2e6); border-radius: .6rem; padding: 1rem; }
.bookpro-op-kpi .k-val { display: block; font-size: 1.5rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.bookpro-op-kpi .k-lbl { display: block; font-size: .78rem; text-transform: uppercase; letter-spacing: .05em; color: var(--bs-secondary-color, #6c757d); }
.bookpro-op-table { width: 100%; }
.bookpro-op-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1rem; flex-wrap: wrap; }

/* ---- Payment method picker logos ---- */
.bookpro-pm-label { display: inline-flex; align-items: center; gap: .5rem; }
.bookpro-pm-logo { height: 20px; width: auto; object-fit: contain; vertical-align: middle; }

/* ---- Operator brand logo on the results list ---- */
.bookpro-result-operator { display: flex; align-items: center; gap: .5rem; margin-bottom: .35rem; }
.bookpro-result-operator-logo { height: 24px; width: auto; object-fit: contain; border-radius: .2rem; }
.bookpro-result-operator-name { font-size: .82rem; font-weight: 600; color: var(--bs-secondary-color, #6c757d); }
