/**
 * Manager panel shell styles. Mobile-first; large tap targets; the tab bar
 * scrolls horizontally on narrow screens. Booking content inside the Bookings
 * tab is styled by owner-frontend.css.
 */

.tpcbs-manager {
	max-width: 1100px;
	margin: 0 auto;
}

.tpcbs-manager__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 12px;
}

/* Tab bar — horizontal scroll on phones, sticky to the top for one-handed use. */
.tpcbs-manager__tabs {
	display: flex;
	gap: 6px;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	padding: 4px;
	margin-bottom: 16px;
	background: #f1f3f5;
	border-radius: 10px;
	position: sticky;
	top: 0;
	z-index: 5;
}

.tpcbs-manager__tabs::-webkit-scrollbar {
	display: none;
}

.tpcbs-manager__tab {
	flex: 0 0 auto;
	-webkit-appearance: none;
	appearance: none;
	border: 0;
	background: transparent;
	color: #33414f;
	font-size: 15px;
	font-weight: 700;
	padding: 10px 16px;
	border-radius: 8px;
	cursor: pointer;
	min-height: 44px;
	white-space: nowrap;
	transition: background 0.15s ease, color 0.15s ease;
}

.tpcbs-manager__tab:hover {
	background: #e2e6ea;
}

.tpcbs-manager__tab.is-active {
	background: #2271b1;
	color: #fff;
}

.tpcbs-manager__panel {
	animation: tpcbs-manager-fade 0.15s ease;
}

.tpcbs-manager__panel[hidden] {
	display: none;
}

@keyframes tpcbs-manager-fade {
	from { opacity: 0; transform: translateY(4px); }
	to   { opacity: 1; transform: translateY(0); }
}

/* Coming-soon placeholders for not-yet-built tabs. */
.tpcbs-manager__placeholder {
	background: #fff;
	border: 1px dashed #c7d0d8;
	border-radius: 12px;
	padding: 28px 22px;
	text-align: center;
	color: #33414f;
}

.tpcbs-manager__placeholder h3 {
	margin: 0 0 8px;
	font-size: 20px;
}

.tpcbs-manager__placeholder p {
	margin: 0 auto 14px;
	max-width: 520px;
	line-height: 1.5;
	color: #5a6b7a;
}

.tpcbs-manager__soon {
	display: inline-block;
	background: #b76e00;
	color: #fff;
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	padding: 4px 12px;
	border-radius: 12px;
}

@media (max-width: 480px) {
	.tpcbs-manager__placeholder {
		padding: 22px 16px;
	}
}

/* ── L2 occupancy calendar (custom grid) ─────────────────────────────────── */

.tpcbs-mgr-cal__toolbar {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 10px;
}

.tpcbs-mgr-cal__nav {
	-webkit-appearance: none;
	appearance: none;
	border: 1px solid #c7d0d8;
	background: #fff;
	color: #1f2d3a;
	font-size: 14px;
	font-weight: 700;
	padding: 9px 14px;
	min-height: 42px;
	border-radius: 8px;
	cursor: pointer;
}

.tpcbs-mgr-cal__nav:hover {
	background: #f1f3f5;
}

.tpcbs-mgr-cal__today {
	background: #2271b1;
	color: #fff;
	border-color: #2271b1;
}

.tpcbs-mgr-cal__range {
	font-weight: 700;
	color: #33414f;
	flex: 1 1 auto;
	text-align: center;
	min-width: 140px;
}

.tpcbs-mgr-cal__days {
	min-height: 42px;
	border: 1px solid #c7d0d8;
	border-radius: 8px;
	padding: 0 10px;
	font-size: 14px;
}

.tpcbs-mgr-cal__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 12px;
	margin-bottom: 12px;
	font-size: 12px;
}

.tpcbs-mgr-cal__key {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: #5a6b7a;
}

.tpcbs-mgr-cal__key::before {
	content: '';
	width: 14px;
	height: 14px;
	border-radius: 3px;
	display: inline-block;
}

.tpcbs-mgr-cal__key--booking::before     { background: #1f7a3d; }
.tpcbs-mgr-cal__key--hold::before         { background: #b76e00; }
.tpcbs-mgr-cal__key--maintenance::before  { background: #6b7785; }
.tpcbs-mgr-cal__key--ical::before         { background: #7048b6; }
.tpcbs-mgr-cal__key--blackout::before     { background: repeating-linear-gradient(45deg, #d9534f, #d9534f 3px, #fff 3px, #fff 6px); }

/* Grid: horizontally scrollable, sticky pitch column. */
.tpcbs-mgr-cal__grid-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	border: 1px solid #dde3e8;
	border-radius: 10px;
	position: relative;
}

.tpcbs-mgr-cal__grid-wrap.is-loading {
	opacity: 0.5;
}

.tpcbs-mgr-cal__table {
	border-collapse: collapse;
	width: max-content;
	min-width: 100%;
	font-size: 13px;
}

.tpcbs-mgr-cal__table th,
.tpcbs-mgr-cal__table td {
	border: 1px solid #e6eaee;
}

.tpcbs-mgr-cal__corner,
.tpcbs-mgr-cal__pitch {
	position: sticky;
	left: 0;
	z-index: 2;
	background: #f7f9fb;
	text-align: left;
	padding: 6px 10px;
	min-width: 110px;
	max-width: 150px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	font-weight: 700;
	color: #33414f;
}

.tpcbs-mgr-cal__corner {
	z-index: 3;
}

.tpcbs-mgr-cal__date {
	padding: 4px 0;
	width: 40px;
	min-width: 40px;
	text-align: center;
	background: #f7f9fb;
	line-height: 1.1;
}

.tpcbs-mgr-cal__date.is-today {
	background: #e3f0fb;
}

.tpcbs-mgr-cal__dow { display: block; font-size: 10px; text-transform: uppercase; color: #8a97a3; }
.tpcbs-mgr-cal__dom { display: block; font-size: 15px; font-weight: 700; color: #1f2d3a; }
.tpcbs-mgr-cal__mon { display: block; font-size: 9px; text-transform: uppercase; color: #8a97a3; }

.tpcbs-mgr-cal__zone th {
	background: #eef2f6;
	text-align: left;
	padding: 5px 10px;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: #5a6b7a;
	position: sticky;
	left: 0;
}

.tpcbs-mgr-cal__cell {
	height: 34px;
	min-width: 40px;
	padding: 0 2px;
	text-align: center;
	vertical-align: middle;
	background: #fff;
}

.tpcbs-mgr-cal__cell.is-today {
	box-shadow: inset 0 0 0 9999px rgba(34, 113, 177, 0.05);
}

.tpcbs-mgr-cal__seg-label {
	display: inline-block;
	max-width: 96px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-size: 11px;
	font-weight: 700;
	color: #fff;
	vertical-align: middle;
}

.tpcbs-mgr-cal__cell--booking     { background: #1f7a3d; }
.tpcbs-mgr-cal__cell--hold        { background: #b76e00; }
.tpcbs-mgr-cal__cell--maintenance { background: #6b7785; }
.tpcbs-mgr-cal__cell--ical        { background: #7048b6; }
.tpcbs-mgr-cal__cell--blackout    {
	background: repeating-linear-gradient(45deg, #f3c6c5, #f3c6c5 4px, #fff 4px, #fff 8px);
}

.tpcbs-mgr-cal__cell--clickable {
	cursor: pointer;
}

.tpcbs-mgr-cal__cell--clickable:hover,
.tpcbs-mgr-cal__cell--clickable:focus {
	outline: 2px solid #133a23;
	outline-offset: -2px;
}

.tpcbs-mgr-cal__empty {
	padding: 24px;
	text-align: center;
	color: #5a6b7a;
}

/* At-a-glance hover tooltip. */
.tpcbs-mgr-tip {
	position: fixed;
	z-index: 10000;
	max-width: 280px;
	background: #1f2d3a;
	color: #fff;
	border-radius: 10px;
	padding: 10px 12px;
	font-size: 13px;
	line-height: 1.4;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.28);
	pointer-events: none;
}

.tpcbs-mgr-tip[hidden] {
	display: none;
}

.tpcbs-mgr-tip__name {
	font-weight: 800;
	font-size: 14px;
	margin-bottom: 4px;
}

.tpcbs-mgr-tip__ref {
	font-weight: 600;
	font-size: 11px;
	color: #9fb3c6;
	margin-left: 4px;
}

.tpcbs-mgr-tip__row {
	color: #d7e0e8;
	margin-top: 2px;
}

.tpcbs-mgr-tip__reg {
	font-family: monospace;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #fff;
}

.tpcbs-mgr-tip__services {
	color: #b9c6d2;
	font-style: italic;
}

.tpcbs-mgr-tip__pay {
	margin-top: 6px;
}

/* The pay pill renders fine on the dark tip (solid bg + white text). */
.tpcbs-mgr-tip .tpcbs-warden-pay-pill {
	font-size: 10px;
}

/* ── Pitches & Zones CRUD ─────────────────────────────────────────────────── */

.tpcbs-mgr-pitches__demo-note {
	background: #fff4e0;
	border: 1px solid #f0d8a8;
	color: #8a5a00;
	padding: 8px 12px;
	border-radius: 8px;
	font-size: 13px;
}

.tpcbs-mgr-pitches__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 18px 0 8px;
}

.tpcbs-mgr-pitches__bar h3 {
	margin: 0;
	font-size: 17px;
}

.tpcbs-mgr-btn {
	-webkit-appearance: none;
	appearance: none;
	border: 1px solid #c7d0d8;
	background: #fff;
	color: #1f2d3a;
	font-size: 14px;
	font-weight: 700;
	padding: 8px 14px;
	min-height: 40px;
	border-radius: 8px;
	cursor: pointer;
}

.tpcbs-mgr-btn:hover { background: #f1f3f5; }
.tpcbs-mgr-btn:disabled { opacity: 0.6; cursor: default; }

.tpcbs-mgr-btn--primary {
	background: #2271b1;
	color: #fff;
	border-color: #2271b1;
}
.tpcbs-mgr-btn--primary:hover { background: #185a8d; }

.tpcbs-mgr-btn--ghost {
	background: transparent;
	border-color: transparent;
	color: #5a6b7a;
}
.tpcbs-mgr-btn--ghost:hover { background: #eef2f6; }

.tpcbs-mgr-table {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
	border: 1px solid #e6eaee;
	border-radius: 10px;
	overflow: hidden;
}

.tpcbs-mgr-table__group th {
	text-align: left;
	background: #eef2f6;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: #5a6b7a;
	padding: 6px 12px;
}

.tpcbs-mgr-row td {
	border-top: 1px solid #eef1f4;
	padding: 10px 12px;
	vertical-align: middle;
}

.tpcbs-mgr-row.is-inactive { opacity: 0.6; }

.tpcbs-mgr-row__name { font-weight: 700; color: #1f2d3a; display: block; }
.tpcbs-mgr-row__meta { font-size: 12px; color: #5a6b7a; }
.tpcbs-mgr-row__state { width: 1%; white-space: nowrap; }
.tpcbs-mgr-row__actions { width: 1%; white-space: nowrap; text-align: right; }
.tpcbs-mgr-row__actions .tpcbs-mgr-btn { padding: 6px 10px; min-height: 36px; }

.tpcbs-mgr-pill {
	display: inline-block;
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 3px 9px;
	border-radius: 12px;
	color: #fff;
}
.tpcbs-mgr-pill--on  { background: #1f7a3d; }
.tpcbs-mgr-pill--off { background: #8a97a3; }

.tpcbs-mgr-empty {
	padding: 16px;
	color: #5a6b7a;
	background: #fff;
	border: 1px dashed #d4dbe1;
	border-radius: 10px;
}

/* Editor overlay. */
.tpcbs-mgr-editor {
	position: fixed;
	inset: 0;
	z-index: 10001;
	background: rgba(15, 25, 35, 0.5);
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding: 20px 12px;
	overflow-y: auto;
}
.tpcbs-mgr-editor[hidden] { display: none; }

.tpcbs-mgr-editor__inner {
	background: #fff;
	border-radius: 12px;
	width: 100%;
	max-width: 560px;
	box-shadow: 0 16px 48px rgba(0, 0, 0, 0.3);
}

.tpcbs-mgr-editor__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 16px;
	border-bottom: 1px solid #eef1f4;
}
.tpcbs-mgr-editor__title { font-size: 17px; font-weight: 800; }
.tpcbs-mgr-editor__close {
	border: 0; background: transparent; font-size: 20px; cursor: pointer; color: #5a6b7a; line-height: 1;
}
.tpcbs-mgr-editor__body { padding: 16px; }

.tpcbs-mgr-form .tpcbs-mgr-field { display: block; margin-bottom: 12px; }
.tpcbs-mgr-form .tpcbs-mgr-field > span {
	display: block; font-size: 12px; font-weight: 700; color: #33414f; margin-bottom: 4px;
}
.tpcbs-mgr-form input[type="text"],
.tpcbs-mgr-form input[type="number"],
.tpcbs-mgr-form select {
	width: 100%;
	min-height: 44px;
	font-size: 16px;
	padding: 8px 12px;
	border: 1px solid #c7d0d8;
	border-radius: 8px;
	box-sizing: border-box;
}

.tpcbs-mgr-field-row {
	display: flex;
	gap: 12px;
}
.tpcbs-mgr-field-row .tpcbs-mgr-field { flex: 1 1 0; }

.tpcbs-mgr-check {
	display: block;
	font-size: 14px;
	color: #33414f;
	padding: 4px 0;
}
.tpcbs-mgr-check--addon { display: flex; align-items: center; gap: 8px; }
.tpcbs-mgr-compulsory { font-size: 11px; color: #8a5a00; margin-left: auto; }

.tpcbs-mgr-fieldset {
	border: 1px solid #e6eaee;
	border-radius: 8px;
	padding: 10px 12px;
	margin: 10px 0;
}
.tpcbs-mgr-fieldset legend { font-size: 12px; font-weight: 700; color: #33414f; padding: 0 4px; }
.tpcbs-mgr-checks {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 2px 12px;
}

.tpcbs-mgr-form__actions {
	display: flex;
	gap: 10px;
	margin-top: 14px;
}
.tpcbs-mgr-form__msg { margin-top: 8px; font-size: 13px; color: #5a6b7a; }

@media (max-width: 480px) {
	.tpcbs-mgr-field-row { flex-direction: column; gap: 0; }
}

/* ── Owner amend (inside the detail overlay) ──────────────────────────────── */

.tpcbs-btn-amend {
	background: #2271b1;
	color: #fff;
	border: 1px solid #2271b1;
	font-weight: 700;
	padding: 8px 14px;
	min-height: 40px;
	border-radius: 8px;
	cursor: pointer;
}
.tpcbs-btn-amend:hover { background: #185a8d; }

.tpcbs-mgr-amend-note {
	font-size: 12px;
	color: #5a6b7a;
	background: #f3f6f9;
	border-radius: 8px;
	padding: 8px 10px;
	margin: 6px 0 10px;
}

.tpcbs-mgr-amend-done p { margin: 0 0 8px; }
.tpcbs-mgr-amend-hint { color: #5a6b7a; font-size: 13px; }

/* Amend tab — booking finder. */
.tpcbs-mgr-amend-intro { color: #5a6b7a; margin: 0 0 10px; }

.tpcbs-mgr-amend-results {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-top: 10px;
}

.tpcbs-mgr-amend-result {
	-webkit-appearance: none;
	appearance: none;
	text-align: left;
	background: #fff;
	border: 1px solid #dde3e8;
	border-radius: 10px;
	padding: 10px 14px;
	cursor: pointer;
	min-height: 48px;
}

.tpcbs-mgr-amend-result:hover,
.tpcbs-mgr-amend-result:focus {
	border-color: #2271b1;
	background: #f3f8fc;
}

.tpcbs-mgr-amend-result__name { display: block; font-weight: 700; color: #1f2d3a; }
.tpcbs-mgr-amend-result__meta { display: block; font-size: 12px; color: #5a6b7a; }

/* Live availability feedback in the amend form. */
.tpcbs-mgr-amend-avail { margin: 4px 0 8px; }

.tpcbs-mgr-avail {
	border-radius: 8px;
	padding: 9px 12px;
	font-size: 14px;
}
.tpcbs-mgr-avail--checking { background: #f1f3f5; color: #5a6b7a; }
.tpcbs-mgr-avail--ok { background: #e6f4ec; color: #1f7a3d; font-weight: 700; }
.tpcbs-mgr-avail--bad { background: #fbe9e9; color: #8a2b2b; }

.tpcbs-mgr-avail__group { margin-top: 6px; font-weight: 400; color: #5a3030; }

.tpcbs-mgr-avail__chip {
	-webkit-appearance: none;
	appearance: none;
	display: inline-block;
	margin: 3px 4px 0 0;
	border: 1px solid #1f7a3d;
	background: #fff;
	color: #1f7a3d;
	font-size: 13px;
	font-weight: 700;
	padding: 5px 11px;
	border-radius: 14px;
	cursor: pointer;
	min-height: 34px;
}
.tpcbs-mgr-avail__chip:hover { background: #1f7a3d; color: #fff; }

/* ── iCals tab ──────────────────────────────────────────────────────────── */
.tpcbs-mgr-icals__intro h3 { margin: 0 0 4px; }
.tpcbs-mgr-icals__intro p { margin: 0 0 14px; color: #5a6b7a; font-size: 14px; }
.tpcbs-mgr-icals__demo-note { color: #8a6d3b; font-size: 13px; margin: 0 0 12px; }

.tpcbs-mgr-icals__zone {
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #5a6b7a;
	margin: 14px 0 6px;
}

.tpcbs-mgr-ical-pitch {
	border: 1px solid #e2e8ee;
	border-radius: 10px;
	margin-bottom: 8px;
	background: #fff;
	overflow: hidden;
}
.tpcbs-mgr-ical-pitch__sum {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 12px 14px;
	cursor: pointer;
	list-style: none;
	min-height: 48px;
}
.tpcbs-mgr-ical-pitch__sum::-webkit-details-marker { display: none; }
.tpcbs-mgr-ical-pitch__sum::after {
	content: '▸';
	margin-left: auto;
	color: #9aa7b4;
	transition: transform 0.15s;
}
.tpcbs-mgr-ical-pitch[open] .tpcbs-mgr-ical-pitch__sum::after { transform: rotate(90deg); }
.tpcbs-mgr-ical-pitch__name { font-weight: 700; color: #1f2d3a; }
.tpcbs-mgr-ical-pitch__meta { font-size: 12px; color: #5a6b7a; }
.tpcbs-mgr-ical-pitch__warn { font-size: 12px; color: #8a2b2b; font-weight: 700; }
.tpcbs-mgr-ical-pitch__body { padding: 4px 14px 14px; border-top: 1px solid #eef2f6; }

.tpcbs-mgr-ical-sec { padding: 12px 0; }
.tpcbs-mgr-ical-sec + .tpcbs-mgr-ical-sec { border-top: 1px dashed #e2e8ee; }
.tpcbs-mgr-ical-sec__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.tpcbs-mgr-ical-sec__title { margin: 0 0 4px; font-size: 14px; color: #1f2d3a; }
.tpcbs-mgr-ical-sec__hint { margin: 0 0 8px; font-size: 12px; color: #5a6b7a; }

.tpcbs-mgr-ical-url { display: flex; gap: 6px; margin-bottom: 8px; }
.tpcbs-mgr-ical-url__input {
	flex: 1 1 auto;
	min-width: 0;
	font-size: 12px;
	padding: 8px 10px;
	border: 1px solid #cdd6df;
	border-radius: 6px;
	background: #f8fafb;
	color: #33424f;
}
.tpcbs-mgr-ical-regen { margin-top: 2px; }

.tpcbs-mgr-ical-feeds { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; }
.tpcbs-mgr-ical-feeds__empty,
.tpcbs-mgr-ical-feed__hidden { font-size: 13px; color: #7a8794; margin: 6px 0 0; }

.tpcbs-mgr-ical-feed {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 10px;
	padding: 10px;
	border: 1px solid #e9eef3;
	border-radius: 8px;
	background: #fbfcfd;
}
.tpcbs-mgr-ical-feed__main { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.tpcbs-mgr-ical-feed__label { font-weight: 700; color: #1f2d3a; font-size: 14px; }
.tpcbs-mgr-ical-feed__url { font-size: 12px; color: #2271b1; word-break: break-all; }
.tpcbs-mgr-ical-feed__sync { font-size: 12px; color: #5a6b7a; }
.tpcbs-mgr-ical-feed__sync.is-ok { color: #1f7a3d; }
.tpcbs-mgr-ical-feed__sync.is-error { color: #8a2b2b; }
.tpcbs-mgr-ical-feed__msg { font-size: 11px; color: #8a6d3b; }
.tpcbs-mgr-ical-feed__actions { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; flex: 0 0 auto; }
.tpcbs-mgr-ical-feed__actions .tpcbs-mgr-btn { padding: 6px 10px; min-height: 36px; font-size: 13px; }

.tpcbs-mgr-field-hint { font-size: 12px; color: #5a6b7a; margin: -4px 0 8px; }

/* Transient toast (sync result / link feedback). */
.tpcbs-mgr-toast {
	position: fixed;
	left: 50%;
	bottom: 24px;
	transform: translateX(-50%) translateY(12px);
	background: #1f2d3a;
	color: #fff;
	padding: 11px 16px;
	border-radius: 8px;
	font-size: 14px;
	max-width: 90vw;
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25);
	opacity: 0;
	transition: opacity 0.25s, transform 0.25s;
	z-index: 100000;
	pointer-events: none;
}
.tpcbs-mgr-toast.is-shown { opacity: 1; transform: translateX(-50%) translateY(0); }

@media (max-width: 480px) {
	.tpcbs-mgr-ical-feed { flex-direction: column; }
	.tpcbs-mgr-ical-feed__actions { justify-content: flex-start; }
}

/* ── Guest App tab ──────────────────────────────────────────────────────── */
.tpcbs-mgr-gp__intro h3 { margin: 0 0 4px; }
.tpcbs-mgr-gp__intro p { margin: 0 0 14px; color: #5a6b7a; font-size: 14px; }
.tpcbs-mgr-gp__demo-note { color: #8a6d3b; font-size: 13px; margin: 0 0 12px; }

.tpcbs-mgr-gp__form .tpcbs-mgr-fieldset {
	border: 1px solid #e2e8ee;
	border-radius: 10px;
	padding: 12px 14px;
	margin-bottom: 12px;
}
.tpcbs-mgr-gp__form legend { font-weight: 700; color: #1f2d3a; padding: 0 6px; }
.tpcbs-mgr-gp__form textarea {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid #cdd6df;
	border-radius: 6px;
	padding: 8px 10px;
	font: inherit;
	resize: vertical;
}
.tpcbs-mgr-gp__form input[type="color"] {
	width: 56px;
	height: 36px;
	padding: 2px;
	border: 1px solid #cdd6df;
	border-radius: 6px;
	background: #fff;
}
.tpcbs-mgr-field__hint { font-weight: 400; font-size: 12px; color: #7a8794; }
.tpcbs-mgr-field__label { display: block; font-size: 13px; font-weight: 600; color: #33424f; margin-bottom: 4px; }

/* ── Rich-text editor ───────────────────────────────────────────────────── */
.tpcbs-rte {
	border: 1px solid #cdd6df;
	border-radius: 6px;
	overflow: hidden;
	background: #fff;
}
.tpcbs-rte__toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: 2px;
	padding: 4px;
	background: #f1f5f8;
	border-bottom: 1px solid #e2e8ee;
}
.tpcbs-rte__btn {
	-webkit-appearance: none;
	appearance: none;
	border: 1px solid transparent;
	background: transparent;
	color: #33424f;
	font-size: 13px;
	line-height: 1;
	padding: 6px 9px;
	border-radius: 4px;
	cursor: pointer;
	min-height: 32px;
}
.tpcbs-rte__btn:hover { background: #fff; border-color: #cdd6df; }
.tpcbs-rte__editor {
	min-height: 84px;
	padding: 9px 11px;
	font: inherit;
	color: #1f2d3a;
	outline: none;
	overflow-wrap: anywhere;
}
.tpcbs-rte__editor:focus { box-shadow: inset 0 0 0 2px rgba(34, 113, 177, 0.25); }
.tpcbs-rte__editor:empty:before {
	content: attr(data-placeholder);
	color: #9aa7b4;
}
.tpcbs-rte__editor p { margin: 0 0 8px; }
.tpcbs-rte__editor ul,
.tpcbs-rte__editor ol { margin: 0 0 8px; padding-left: 22px; }
.tpcbs-rte__editor a { color: #2271b1; }
.tpcbs-rte[data-readonly="1"] .tpcbs-rte__editor { background: #f8fafb; color: #5a6b7a; }

/* ── Pitch form: description + media pickers ────────────────────────────── */
.tpcbs-mgr-form textarea {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid #cdd6df;
	border-radius: 6px;
	padding: 8px 10px;
	font: inherit;
	resize: vertical;
}
.tpcbs-mgr-photo { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.tpcbs-mgr-photo__preview img { width: 80px; height: 80px; object-fit: cover; border-radius: 8px; display: block; }
.tpcbs-mgr-photo__actions { display: flex; gap: 6px; }
.tpcbs-mgr-gallery-thumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; }
.tpcbs-mgr-gallery-thumb { position: relative; display: inline-block; }
.tpcbs-mgr-gallery-thumb img { width: 70px; height: 70px; object-fit: cover; border-radius: 6px; display: block; }
.tpcbs-mgr-gallery-remove {
	position: absolute;
	top: -6px;
	right: -6px;
	background: #dc3232;
	color: #fff;
	border: 0;
	border-radius: 50%;
	width: 20px;
	height: 20px;
	line-height: 18px;
	cursor: pointer;
	padding: 0;
}

/* ── Pricing & seasons ──────────────────────────────────────────────────── */
.tpcbs-mgr-pricing__intro h3 { margin: 0 0 4px; }
.tpcbs-mgr-pricing__intro p { margin: 0 0 14px; color: #5a6b7a; font-size: 14px; }
.tpcbs-mgr-pricing__demo-note { color: #8a6d3b; font-size: 13px; margin: 0 0 12px; }
.tpcbs-mgr-pricing__bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 16px 0 8px; }
.tpcbs-mgr-pricing__bar h4 { margin: 0; }
.tpcbs-mgr-pricing__season-pick { font-size: 13px; color: #33424f; display: flex; align-items: center; gap: 6px; }
.tpcbs-mgr-pricing__season-pick select { padding: 7px 9px; border: 1px solid #cdd6df; border-radius: 6px; }
.tpcbs-mgr-pricing__zone { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: #5a6b7a; margin: 14px 0 6px; }

.tpcbs-mgr-price-pitch { border: 1px solid #e2e8ee; border-radius: 10px; margin-bottom: 8px; background: #fff; overflow: hidden; }
.tpcbs-mgr-price-pitch__sum { display: flex; align-items: center; gap: 10px; padding: 12px 14px; cursor: pointer; list-style: none; min-height: 48px; }
.tpcbs-mgr-price-pitch__sum::-webkit-details-marker { display: none; }
.tpcbs-mgr-price-pitch__sum::after { content: '▸'; margin-left: auto; color: #9aa7b4; transition: transform 0.15s; }
.tpcbs-mgr-price-pitch[open] .tpcbs-mgr-price-pitch__sum::after { transform: rotate(90deg); }
.tpcbs-mgr-price-pitch__name { font-weight: 700; color: #1f2d3a; }
.tpcbs-mgr-price-pitch__meta { font-size: 12px; color: #5a6b7a; }
.tpcbs-mgr-price-pitch__body { padding: 4px 14px 14px; border-top: 1px solid #eef2f6; }

.tpcbs-mgr-price-table th { font-size: 11px; text-transform: uppercase; letter-spacing: 0.03em; color: #7a8794; text-align: left; padding: 4px 6px; }
.tpcbs-mgr-price-table td { padding: 5px 6px; border-top: 1px solid #eef2f6; font-size: 14px; }
.tpcbs-mgr-price-lines__empty { font-size: 13px; color: #7a8794; margin: 6px 0; }

.tpcbs-mgr-price-add { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 10px; }
.tpcbs-mgr-price-add select,
.tpcbs-mgr-price-add input { padding: 7px 9px; border: 1px solid #cdd6df; border-radius: 6px; font: inherit; }
.tpcbs-mgr-price-add input[name="amount"] { width: 90px; }
.tpcbs-mgr-price-add input[name="unit_label"] { width: 130px; }
.tpcbs-mgr-price-add input[name="included_qty"],
.tpcbs-mgr-price-add input[name="max_qty"] { width: 64px; }
.tpcbs-mgr-price-add__msg { font-size: 12px; color: #8a2b2b; }

/* ── Closures (blackouts + maintenance) ─────────────────────────────────── */
.tpcbs-mgr-avail__intro h3 { margin: 0 0 4px; }
.tpcbs-mgr-avail__intro p { margin: 0 0 14px; color: #5a6b7a; font-size: 14px; }
.tpcbs-mgr-avail__demo-note { color: #8a6d3b; font-size: 13px; margin: 0 0 12px; }
.tpcbs-mgr-avail__section { margin-bottom: 22px; }
.tpcbs-mgr-avail__bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 16px 0 8px; }
.tpcbs-mgr-avail__bar h4 { margin: 0; }
.tpcbs-mgr-avail__pitch-pick { font-size: 13px; color: #33424f; display: flex; align-items: center; gap: 6px; }
.tpcbs-mgr-avail__pitch-pick select { padding: 7px 9px; border: 1px solid #cdd6df; border-radius: 6px; }
.tpcbs-mgr-maint > .tpcbs-mgr-btn { margin-top: 10px; }
.tpcbs-mgr-row--past { opacity: 0.6; }
.tpcbs-mgr-row--past .tpcbs-mgr-pill { background: #8a97a3; }

/* ── Vouchers ───────────────────────────────────────────────────────────── */
.tpcbs-mgr-vouchers__intro h3 { margin: 0 0 4px; }
.tpcbs-mgr-vouchers__intro p { margin: 0 0 14px; color: #5a6b7a; font-size: 14px; }
.tpcbs-mgr-vouchers__demo-note { color: #8a6d3b; font-size: 13px; margin: 0 0 12px; }
.tpcbs-mgr-vouchers__bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 16px 0 8px; }
.tpcbs-mgr-vouchers__bar h4 { margin: 0; }
.tpcbs-mgr-vouchers .tpcbs-mgr-row__name { display: inline-flex; align-items: center; gap: 8px; }
.tpcbs-mgr-field--check { display: flex; flex-direction: row; align-items: center; gap: 8px; margin-bottom: 12px; }
.tpcbs-mgr-field--check input { width: auto; }
.tpcbs-mgr-form .tpcbs-mgr-field--check > span { margin: 0; font-weight: 400; }

/* ── Add-ons ────────────────────────────────────────────────────────────── */
.tpcbs-mgr-addons__intro h3 { margin: 0 0 4px; }
.tpcbs-mgr-addons__intro p { margin: 0 0 14px; color: #5a6b7a; font-size: 14px; }
.tpcbs-mgr-addons__demo-note { color: #8a6d3b; font-size: 13px; margin: 0 0 12px; }
.tpcbs-mgr-addons__bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 16px 0 8px; }
.tpcbs-mgr-addons__bar h4 { margin: 0; }
.tpcbs-mgr-addons .tpcbs-mgr-row__name { display: inline-flex; align-items: center; gap: 8px; }
.tpcbs-mgr-addon-prices { margin: 6px 0; }
.tpcbs-mgr-addon-prices td { padding: 5px 6px; border-top: 1px solid #eef2f6; font-size: 14px; }
.tpcbs-mgr-addon-prices__sym { color: #5a6b7a; margin-right: 4px; }
.tpcbs-mgr-addon-prices input { width: 90px; padding: 7px 9px; border: 1px solid #cdd6df; border-radius: 6px; font: inherit; }
.tpcbs-mgr-addon-types { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 6px 0; }
.tpcbs-mgr-addon-types__opt { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; color: #33424f; }
.tpcbs-mgr-addon-types__opt input { width: auto; }

/* ── Pitch types ────────────────────────────────────────────────────────── */
.tpcbs-mgr-ptypes__intro h3 { margin: 0 0 4px; }
.tpcbs-mgr-ptypes__intro p { margin: 0 0 10px; color: #5a6b7a; font-size: 14px; }
.tpcbs-mgr-ptypes__demo-note { color: #8a6d3b; font-size: 13px; margin: 0 0 12px; }
.tpcbs-mgr-ptypes-table th { font-size: 11px; text-transform: uppercase; letter-spacing: 0.03em; color: #7a8794; text-align: left; padding: 6px; }
.tpcbs-mgr-ptypes-table td { padding: 6px; border-top: 1px solid #eef2f6; vertical-align: middle; }
.tpcbs-mgr-ptypes-table input[type="text"],
.tpcbs-mgr-ptypes-table input[type="number"] { padding: 7px 9px; border: 1px solid #cdd6df; border-radius: 6px; font: inherit; width: 100%; }
.tpcbs-mgr-ptypes__slug { background: #eef2f6; padding: 2px 6px; border-radius: 4px; font-size: 12px; color: #33424f; }
.tpcbs-mgr-ptypes__icon { max-width: 120px; }
.tpcbs-mgr-ptypes__order { max-width: 70px; }
.tpcbs-mgr-ptypes__sc { white-space: nowrap; }
.tpcbs-mgr-ptypes__sc code { font-size: 12px; color: #1f2d3a; }
.tpcbs-mgr-ptypes__copy { margin-left: 6px; }
.tpcbs-mgr-ptypes__add { background: #f6f9fc; border: 1px solid #e2e8ef; border-radius: 8px; padding: 12px 14px; margin: 0 0 14px; }
.tpcbs-mgr-ptypes__add h4 { margin: 0 0 8px; font-size: 13px; text-transform: uppercase; letter-spacing: 0.05em; color: #33424f; }
.tpcbs-mgr-ptypes__add-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.tpcbs-mgr-ptypes__add-row input[type="text"] { flex: 1 1 220px; padding: 8px 10px; border: 1px solid #cdd6df; border-radius: 6px; font: inherit; }
.tpcbs-mgr-ptypes__add-msg { font-size: 13px; color: #5a6b7a; }
.tpcbs-mgr-ptypes__add-msg--err { color: #b91c1c; }
.tpcbs-mgr-ptypes__add-hint { margin: 8px 0 0; color: #7a8794; font-size: 12px; }
.tpcbs-mgr-chip { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: 600; letter-spacing: 0.03em; text-transform: uppercase; }
.tpcbs-mgr-chip--preset { background: #eef2f6; color: #4a5866; }
.tpcbs-mgr-chip--custom { background: #dcfce7; color: #14532d; }
.tpcbs-mgr-btn--danger { background: #fee2e2; color: #b91c1c; border: 1px solid #fecaca; padding: 6px 10px; border-radius: 6px; font: inherit; cursor: pointer; }
.tpcbs-mgr-btn--danger:hover:not(:disabled) { background: #fecaca; }
.tpcbs-mgr-btn--danger:disabled { opacity: 0.6; cursor: default; }
.tpcbs-mgr-ptypes__actions { white-space: nowrap; }

/* ── Staff (warden users) ───────────────────────────────────────────────── */
.tpcbs-mgr-staff { position: relative; }
.tpcbs-mgr-staff__intro h3 { margin: 0 0 4px; }
.tpcbs-mgr-staff__intro p { margin: 0 0 14px; color: #5a6b7a; font-size: 14px; }
.tpcbs-mgr-staff__bar { margin: 18px 0 8px; }
.tpcbs-mgr-staff__bar h4 { margin: 0; }
.tpcbs-mgr-staff__create { margin-bottom: 8px; }
.tpcbs-mgr-staff .tpcbs-mgr-row__name { display: inline-flex; align-items: center; gap: 8px; }
.tpcbs-mgr-staff__level { padding: 6px 8px; border: 1px solid #cdd6df; border-radius: 6px; font: inherit; margin-right: 4px; }
.tpcbs-mgr-staff__toast {
	position: fixed;
	left: 50%;
	bottom: 24px;
	transform: translateX(-50%);
	background: #1f2d3a;
	color: #fff;
	padding: 10px 16px;
	border-radius: 8px;
	font-size: 14px;
	box-shadow: 0 6px 20px rgba(15, 25, 35, 0.3);
	z-index: 10002;
}

/* ── Settings ───────────────────────────────────────────────────────────── */
.tpcbs-mgr-settings__intro h3 { margin: 0 0 4px; }
.tpcbs-mgr-settings__intro p { margin: 0 0 14px; color: #5a6b7a; font-size: 14px; }
.tpcbs-mgr-settings__group { border: 1px solid #e2e8ee; border-radius: 10px; padding: 14px 16px 4px; margin: 0 0 16px; background: #fff; }
.tpcbs-mgr-settings__group legend { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: #5a6b7a; padding: 0 6px; }
.tpcbs-mgr-settings__group .tpcbs-mgr-field input,
.tpcbs-mgr-settings__group .tpcbs-mgr-field select { width: 100%; }
/* Checkboxes must stay their natural size, never stretch to fill the field. */
.tpcbs-mgr-settings__group .tpcbs-mgr-field input[type="checkbox"] { width: auto; }
.tpcbs-mgr-addon-types__opt input[type="checkbox"] { width: auto; flex: none; }
.tpcbs-mgr-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 13px; width: 100%; }

/* Child age band rows */
.tpcbs-mgr-bands { margin: 6px 0 10px; }
.tpcbs-mgr-band-row { display: grid; grid-template-columns: 2fr 1fr 1fr auto; gap: 8px; align-items: center; margin-bottom: 6px; }
.tpcbs-mgr-band-row input { padding: 7px 9px; border: 1px solid #cdd6df; border-radius: 6px; font: inherit; width: 100%; }
.tpcbs-mgr-band-row--head { font-size: 11px; text-transform: uppercase; letter-spacing: 0.03em; color: #7a8794; margin-bottom: 2px; }
.tpcbs-mgr-band-row--head span { padding-left: 2px; }
.tpcbs-mgr-band-row [data-mgr-band-remove] { padding: 6px 10px; }

/* ── Reports (export + audit log) ───────────────────────────────────────── */
.tpcbs-mgr-reports__intro h3 { margin: 0 0 4px; }
.tpcbs-mgr-reports__intro p { margin: 0 0 14px; color: #5a6b7a; font-size: 14px; }
.tpcbs-mgr-reports__section { margin-bottom: 24px; }
.tpcbs-mgr-reports__section h4 { margin: 0 0 8px; }
.tpcbs-mgr-reports__bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0 0 8px; }
.tpcbs-mgr-reports__bar h4 { margin: 0; }
.tpcbs-mgr-reports__filter { font-size: 13px; color: #33424f; display: flex; align-items: center; gap: 6px; }
.tpcbs-mgr-reports__filter select { padding: 7px 9px; border: 1px solid #cdd6df; border-radius: 6px; }
.tpcbs-mgr-audit-table { table-layout: fixed; width: 100%; }
.tpcbs-mgr-audit-table th { font-size: 11px; text-transform: uppercase; letter-spacing: 0.03em; color: #7a8794; text-align: left; padding: 6px; }
.tpcbs-mgr-audit-table td { padding: 8px 6px; border-top: 1px solid #eef2f6; vertical-align: top; font-size: 13px; }
.tpcbs-mgr-audit__when { white-space: nowrap; color: #5a6b7a; width: 130px; }
.tpcbs-mgr-audit__event code { font-size: 12px; color: #1f2d3a; word-break: break-word; }
.tpcbs-mgr-audit__bk { color: #7a8794; font-size: 12px; }
.tpcbs-mgr-audit__details { color: #33424f; }
.tpcbs-mgr-audit__details div { margin-bottom: 2px; word-break: break-word; }

/* ── Email settings ─────────────────────────────────────────────────────── */
.tpcbs-mgr-email__intro h3 { margin: 0 0 4px; }
.tpcbs-mgr-email__intro p { margin: 0 0 14px; color: #5a6b7a; font-size: 14px; }
.tpcbs-mgr-email__warn { color: #8a2b2b; background: #fdecea; border: 1px solid #f5c2bd; border-radius: 8px; padding: 8px 12px; font-size: 13px; margin: 0 0 12px; }
.tpcbs-mgr-email .tpcbs-mgr-field input,
.tpcbs-mgr-email .tpcbs-mgr-field select,
.tpcbs-mgr-email .tpcbs-mgr-field textarea { width: 100%; }

/* ── Pitch stay rules ───────────────────────────────────────────────────── */
.tpcbs-mgr-sr-block { margin-top: 8px; padding-left: 4px; }
.tpcbs-mgr-sr-block[hidden] { display: none; }
.tpcbs-mgr-sr-days { display: flex; flex-wrap: wrap; gap: 8px; }
.tpcbs-mgr-sr-day { display: flex; flex-direction: column; align-items: center; gap: 2px; font-size: 12px; font-weight: 600; color: #5a6b7a; }
.tpcbs-mgr-sr-day input { width: 54px; text-align: center; padding: 6px; border: 1px solid #cdd6df; border-radius: 6px; }

/* v0.89.18 — Size variants panel in the Pitch Types tab */
.tpcbs-mgr-sv { margin-top: 22px; padding-top: 18px; border-top: 1px dashed #cdd6df; }
.tpcbs-mgr-sv h4 { margin: 0 0 6px; font-size: 15px; color: #33424f; }
.tpcbs-mgr-sv > .tpcbs-mgr-field { display: block; max-width: 320px; margin: 10px 0 12px; }
.tpcbs-mgr-sv > .tpcbs-mgr-field select { width: 100%; padding: 8px 10px; border: 1px solid #cdd6df; border-radius: 6px; font: inherit; }
.tpcbs-mgr-sv__panel table { width: 100%; margin-top: 8px; }
.tpcbs-mgr-sv__panel input[type="text"], .tpcbs-mgr-sv__panel input[type="number"] { padding: 6px 8px; border: 1px solid #cdd6df; border-radius: 4px; font: inherit; width: 100%; box-sizing: border-box; }
.tpcbs-mgr-sv__add { margin-top: 14px; padding: 12px 14px; background: #f6f9fc; border: 1px solid #e2e8ef; border-radius: 8px; }
.tpcbs-mgr-sv__add h4 { margin: 0 0 8px; font-size: 13px; text-transform: uppercase; letter-spacing: 0.05em; }
.tpcbs-mgr-sv__add .tpcbs-mgr-field { margin: 6px 0; }
.tpcbs-mgr-sv__add .tpcbs-mgr-field span { display: inline-block; min-width: 120px; font-size: 13px; color: #4a5764; }
.tpcbs-mgr-sv__add input[type="text"], .tpcbs-mgr-sv__add input[type="number"] { padding: 8px 10px; border: 1px solid #cdd6df; border-radius: 6px; font: inherit; width: 220px; }
.tpcbs-mgr-sv__add .tpcbs-mgr-btn { margin-top: 6px; }

/* v0.94.0 — pin-on-image site map picker (inside pitch editor) */
.tpcbs-mgr-pinpicker__wrap { position: relative; display: inline-block; max-width: 100%; margin-top: 6px; cursor: crosshair; line-height: 0; }
.tpcbs-mgr-pinpicker__img { display: block; max-width: 100%; max-height: 340px; border-radius: 8px; border: 1px solid #e5e7eb; }
.tpcbs-mgr-pinpicker__pin { position: absolute; width: 18px; height: 18px; border-radius: 999px; background: #2e7d32; border: 3px solid #fff; box-shadow: 0 2px 6px rgba(0,0,0,0.35); transform: translate(-50%,-50%); pointer-events: none; }
.tpcbs-mgr-pinpicker__actions { display: flex; align-items: center; gap: 12px; margin-top: 8px; }

/* v0.94.1 — facility-codes repeater + inline checkbox rows */
.tpcbs-mgr-facility-rows { display: flex; flex-direction: column; gap: 6px; margin-top: 4px; }
.tpcbs-mgr-facility-row { display: grid; grid-template-columns: 2fr 1fr auto; gap: 6px; align-items: center; }
.tpcbs-mgr-field--check { display: flex; flex-direction: row; align-items: center; gap: 8px; }
.tpcbs-mgr-field--check input[type="checkbox"] { width: 16px; height: 16px; margin: 0; }
