/* Frontend theme */
:root{
	--btp-bg: #0b1220;
	--btp-card: rgba(255,255,255,0.9);
	--btp-border: rgba(15,23,42,0.10);
	--btp-text: #0f172a;
	--btp-muted: #64748b;
	--btp-primary: #4f46e5;
	--btp-primary-2: #06b6d4;
	--btp-danger: #ef4444;
	--btp-success: #16a34a;
}

body .btp-card,
body .btp-search-form,
body .btp-search-results,
body .btp-booking,
body .btp-user-dashboard,
body .btp-auth,
body .btp-check-box {
	box-sizing: border-box;
	font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
	color: var(--btp-text);
}

.btp-card{
	background: var(--btp-card);
	backdrop-filter: blur(10px);
	border: 1px solid var(--btp-border);
	border-radius: 16px;
	padding: 16px;
	box-shadow: 0 12px 35px rgba(2,6,23,0.10);
}

.btp-grid{
	display:grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 14px;
}

.btp-search-form{
	padding: 14px;
	border-radius: 18px;
	background: linear-gradient(135deg, rgba(79,70,229,0.12), rgba(6,182,212,0.10));
	border: 1px solid var(--btp-border);
}

.btp-search-form label span{
	font-weight: 600;
	color: #111827;
}

.btp-search-form input,
.btp-search-form select,
.btp-booking input,
.btp-booking select,
.btp-auth input,
.btp-check-box input,
.btp-user-dashboard input,
.btp-user-dashboard select,
.btp-review-form input,
.btp-review-form textarea{
	border: 1px solid rgba(15,23,42,0.14);
	border-radius: 12px;
	padding: 10px 12px;
	min-height: 40px;
	outline: none;
	background: #fff;
}
.btp-search-form input:focus,
.btp-search-form select:focus,
.btp-booking input:focus,
.btp-booking select:focus,
.btp-auth input:focus,
.btp-review-form textarea:focus{
	border-color: rgba(79,70,229,0.65);
	box-shadow: 0 0 0 4px rgba(79,70,229,0.12);
}

.btp-search-form button,
.btp-booking button,
.btp-auth button,
.btp-user-dashboard button,
.btp-check-box button{
	border: none;
	border-radius: 12px;
	padding: 10px 14px;
	font-weight: 700;
	cursor: pointer;
	background: linear-gradient(135deg, var(--btp-primary), var(--btp-primary-2));
	color: #fff;
	box-shadow: 0 10px 20px rgba(79,70,229,0.16);
}
.btp-search-form button:hover,
.btp-booking button:hover,
.btp-auth button:hover{
	filter: brightness(1.04);
}
.btp-search-results .widefat{
	border-radius: 14px;
	overflow:hidden;
}

/* Seatmap (new MVP renderer) */
.btp-seatmap {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
	margin-top: 12px;
}
.btp-seatmap-floor {
	background: #fff;
	border: 1px solid #eee;
	border-radius: 10px;
	padding: 12px;
}
.btp-seatmap-floor-title {
	font-weight: 700;
	margin-bottom: 8px;
}
.btp-seatmap-table {
	border-collapse: separate;
	border-spacing: 6px 6px; /* small gaps between all columns/rows */
}
.btp-seatmap-cell {
	width: 42px;
	height: 36px;
	border: 1px solid #f0f0f0;
	text-align: center;
	vertical-align: middle;
	font-size: 12px;
	border-radius: 6px;
	user-select: none;
}
.btp-seatmap-cell-walkway {
	background: transparent;
	border: 0;
	width: 16px; /* keep aisle as a gap */
	min-width: 16px;
}
.btp-seatmap-cell-seat {
	cursor: pointer;
	background: #e9f7ef;
}
.btp-seatmap-cell-seat.is-disabled {
	cursor: not-allowed;
	opacity: 0.85;
}
.btp-seatmap-status-available { background: #e9f7ef; }
.btp-seatmap-status-holding { background: #fff3cd; }
.btp-seatmap-status-sold { background: #f8d7da; }
.btp-seatmap-status-blocked { background: #e9ecef; color: #6c757d; }
.btp-seatmap-cell-seat.is-selected { outline: 2px solid #27ae60; background: #27ae60; color: #fff; }

/* Booking layout v2 */
.btp-booking-v2{
	background: #f8fafc;
	border: 1px solid rgba(15,23,42,0.10);
	border-radius: 18px;
	padding: 14px;
}
.btp-booking-v2 .btp-card{
	background: #ffffff;
	backdrop-filter: none;
	border: 1px solid rgba(15,23,42,0.10);
	border-radius: 14px;
	box-shadow: none; /* per request */
}
.btp-booking-v2 .btp-booking__trip{
	color: #0f172a;
}
.btp-booking-v2 .btp-booking__selected{
	margin-top: 10px;
	padding: 10px 12px;
	border-radius: 12px;
	background: #f1f5f9;
	border: 1px dashed rgba(15,23,42,0.14);
	color: #0f172a;
	font-size: 13px;
}
.btp-booking-v2__header{
	display:flex;
	align-items:flex-end;
	justify-content: space-between;
	gap: 12px;
	margin: 4px 0 12px 0;
}
.btp-booking-v2__title{
	margin: 0;
	font-size: 20px;
	letter-spacing: -0.02em;
}
.btp-booking-v2__subtitle{
	margin-top: 4px;
	color: var(--btp-muted);
	font-size: 13px;
}
.btp-booking-v2__grid{
	display:grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: 14px;
	align-items: start;
}
.btp-booking-v2__left{
	display:flex;
	flex-direction: column;
	gap: 14px;
	min-width: 0;
}
.btp-booking-v2__right{
	position: sticky;
	top: 18px;
}
.btp-booking-v2__section-title{
	font-weight: 800;
	margin: 0 0 10px 0;
}
.btp-booking-v2__summary{
	border-radius: 16px;
}
.btp-booking-v2__summary .btp-booking__summary-row{
	padding: 6px 0;
	border-bottom: 1px solid rgba(15,23,42,0.06);
}
.btp-booking-v2__summary .btp-booking__summary-row:last-of-type{
	border-bottom: 0;
}
.btp-booking__summary-row--total strong{
	font-size: 18px;
	letter-spacing: -0.02em;
}
.btp-booking-v2__summary .btp-booking__summary-row{
	margin: 8px 0;
	display:flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 10px;
}
.btp-booking-v2__pay{
	width: 100%;
	margin-top: 12px;
	padding: 12px 14px;
	border-radius: 14px;
	font-size: 15px;
	box-shadow: none; /* per request */
}
.btp-booking-v2__pay[disabled]{
	opacity: 0.7;
	cursor: not-allowed;
	filter: grayscale(0.1);
}
.btp-booking-v2__hint{
	margin-top: 10px;
	font-size: 12px;
	color: var(--btp-muted);
	line-height: 1.35;
}

/* Booking layout v3 (checkout bar + hero) */
.btp-checkout{
	--c-bg: #f8fafc;
	--c-panel: #ffffff;
	--c-border: rgba(2,6,23,0.10);
	--c-ink: #0b1220;
	--c-muted: #64748b;
	--c-accent: #111827;
	--c-gap: 12px;
	--c-pad: 14px;
	--c-radius: 16px;
	background: var(--c-bg);
	border: 1px solid var(--c-border);
	border-radius: 18px;
	overflow: hidden;
}
.btp-checkout *{ box-sizing: border-box; }
.btp-checkout__hero{
	background: linear-gradient(135deg, rgba(15,23,42,0.08), rgba(79,70,229,0.10));
	border-bottom: 1px solid var(--c-border);
	padding: 16px;
}
.btp-checkout__hero-inner{
	max-width: 1160px;
	margin: 0 auto;
	display:flex;
	gap: var(--c-gap);
	align-items: flex-start;
	justify-content: space-between;
	flex-wrap: wrap;
}
.btp-checkout__brand{
	display:flex;
	gap: 12px;
	align-items: center;
}
.btp-checkout__badge{
	width: 44px;
	height: 44px;
	border-radius: 12px;
	display:flex;
	align-items:center;
	justify-content:center;
	font-weight: 900;
	letter-spacing: 0.04em;
	background: #0b1220;
	color: #fff;
}
.btp-checkout__title{
	margin: 0;
	font-size: 22px;
	letter-spacing: -0.03em;
	color: var(--c-ink);
}
.btp-checkout__desc{
	margin-top: 2px;
	color: var(--c-muted);
	font-size: 13px;
}
.btp-checkout__trip{
	min-width: min(520px, 100%);
	background: rgba(255,255,255,0.70);
	border: 1px solid var(--c-border);
	border-radius: var(--c-radius);
	padding: 10px 12px;
	box-shadow: none;
}

.btp-checkout__main{
	max-width: 1160px;
	margin: 0 auto;
	padding: 14px 16px 96px 16px; /* space for bottom bar */
	display:flex;
	flex-direction: column;
	gap: var(--c-gap);
}
.btp-checkout__grid{
	display:grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--c-gap);
}
.btp-checkout__cols{
	display:grid;
	grid-template-columns: minmax(0, 1fr) 50%;
	gap: var(--c-gap);
	align-items: start;
}
.btp-checkout__col-right{
	position: sticky;
	top: 14px;
	display:flex;
	flex-direction: column;
	gap: var(--c-gap);
}
.btp-checkout__col-left{
	display:flex;
	flex-direction: column;
	gap: var(--c-gap);
	min-width: 0;
}
.btp-checkout__panel{
	background: var(--c-panel);
	border: 1px solid var(--c-border);
	border-radius: var(--c-radius);
	padding: var(--c-pad);
	box-shadow: none;
}
.btp-checkout__panel-head{
	display:flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 8px;
}
.btp-checkout__panel-title{
	font-weight: 900;
	letter-spacing: -0.02em;
	color: var(--c-ink);
}
.btp-checkout__panel-sub{
	color: var(--c-muted);
	font-size: 12px;
}
.btp-checkout__panel--seats,
.btp-checkout__panel--seats-return{
	padding: 12px;
}
.btp-checkout__panel--seats .btp-seatmap,
.btp-checkout__panel--seats-return .btp-seatmap{
	margin-top: 10px;
}
.btp-checkout__legend{
	display:flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
	padding: 8px 10px;
	border-radius: 12px;
	background: #f1f5f9;
	border: 1px solid rgba(15,23,42,0.08);
	color: var(--c-muted);
	font-size: 12px;
}
.btp-checkout__dot{
	width: 10px;
	height: 10px;
	border-radius: 999px;
	display:inline-block;
	margin-right: 4px;
	border: 1px solid rgba(15,23,42,0.12);
}
.btp-dot--available{ background:#e9f7ef; }
.btp-dot--holding{ background:#fff3cd; }
.btp-dot--sold{ background:#f8d7da; }
.btp-dot--blocked{ background:#e9ecef; }

.btp-checkout__panel--summary .btp-checkout__panel-head{ margin-bottom: 12px; }
.btp-checkout__sumrows{
	display:flex;
	flex-direction: column;
	gap: 8px;
}
.btp-checkout__sumrow{
	display:flex;
	justify-content: space-between;
	gap: 10px;
	color: var(--c-muted);
	font-size: 13px;
	padding-bottom: 8px;
	border-bottom: 1px solid rgba(15,23,42,0.06);
}
.btp-checkout__sumrow strong{ color: var(--c-ink); }
.btp-checkout__sumrow--total{
	border-bottom: 0;
	padding-bottom: 0;
	color: var(--c-ink);
	font-weight: 900;
}
.btp-checkout__sumrow--total strong{
	font-size: 18px;
	letter-spacing: -0.02em;
}

.btp-checkout__fields{
	display:grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}
.btp-checkout__fields--3{
	grid-template-columns: 1fr 1fr 1fr;
}
.btp-checkout__fields--1{
	grid-template-columns: 1fr;
}
.btp-checkout__field{
	display:flex;
	flex-direction: column;
	gap: 6px;
}
.btp-checkout__field > span{
	font-weight: 700;
	font-size: 12px;
	color: var(--c-accent);
}
.btp-checkout__field input,
.btp-checkout__field select{
	border-radius: 12px;
	border: 1px solid rgba(15,23,42,0.14);
	padding: 10px 12px;
	min-height: 40px;
	outline: none;
	background: #fff;
	box-shadow: none;
}
.btp-checkout__field input:focus,
.btp-checkout__field select:focus{
	border-color: rgba(17,24,39,0.65);
	box-shadow: 0 0 0 3px rgba(15,23,42,0.10);
}
.btp-checkout__coupon{
	display:flex;
	gap: 10px;
	align-items: center;
}
.btp-checkout__coupon input{
	flex: 1;
	border-radius: 12px;
	border: 1px solid rgba(15,23,42,0.14);
	padding: 10px 12px;
	min-height: 40px;
}
.btp-checkout__coupon button{
	border-radius: 12px;
	padding: 10px 14px;
	background: #0b1220;
	color: #fff;
	font-weight: 800;
	box-shadow: none;
}

.btp-checkout .btp-booking__selected{
	margin-top: 10px;
	padding: 10px 12px;
	border-radius: 14px;
	background: #f1f5f9;
	border: 1px dashed rgba(15,23,42,0.16);
	color: var(--c-ink);
	font-size: 13px;
}

.btp-checkout__bar{
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 50;
}
.btp-checkout__bar-inner{
	max-width: 1160px;
	margin: 0 auto;
	background: rgba(255,255,255,0.92);
	backdrop-filter: blur(10px);
	border: 1px solid var(--c-border);
	border-radius: 16px 16px 0 0;
	padding: 10px 12px;
	display:grid;
	grid-template-columns: 1.1fr 0.9fr 220px;
	gap: 12px;
	align-items: center;
	box-shadow: none;
}
.btp-checkout__money{
	display:flex;
	flex-direction: column;
	gap: 6px;
}
.btp-checkout__money-row{
	display:flex;
	justify-content: space-between;
	gap: 10px;
	font-size: 13px;
	color: var(--c-muted);
}
.btp-checkout__money-row strong{ color: var(--c-ink); }
.btp-checkout__total{
	text-align: right;
}
.btp-checkout__total-label{
	color: var(--c-muted);
	font-size: 12px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}
.btp-checkout__total-value{
	font-weight: 1000;
	letter-spacing: -0.03em;
	color: var(--c-ink);
	font-size: 20px;
}
.btp-checkout__pay{
	width: 100%;
	border: none;
	border-radius: 14px;
	padding: 12px 14px;
	font-weight: 900;
	cursor: pointer;
	background: #0b1220;
	color: #fff;
	box-shadow: none;
}
.btp-checkout__pay[disabled]{
	opacity: 0.7;
	cursor: not-allowed;
}

@media (max-width: 980px){
	.btp-checkout__grid{ grid-template-columns: 1fr; }
	.btp-checkout__cols{ grid-template-columns: 1fr; }
	.btp-checkout__col-right{ position: static; }
	.btp-checkout__fields{ grid-template-columns: 1fr; }
	.btp-checkout__fields--3{ grid-template-columns: 1fr; }
	.btp-checkout__bar-inner{
		grid-template-columns: 1fr;
		border-radius: 16px 16px 0 0;
	}
	.btp-checkout__total{ text-align: left; }
}

@media (max-width: 720px){
	.btp-admin-grid{ grid-template-columns: 1fr !important; }
	.btp-seatmap{ flex-direction: column; }
	.btp-seatmap-cell{ width: 38px; height: 34px; }
	.btp-booking-v2__grid{ grid-template-columns: 1fr; }
	.btp-booking-v2__right{ position: static; }
}

/* =========================
   Payment page (btp_payment)
   ========================= */
.btp-pay{
	--pay-bg: rgba(255,255,255,0.72);
	--pay-border: rgba(15,23,42,0.12);
	--pay-shadow: 0 18px 60px rgba(2,6,23,0.08);
}
.btp-ticketbar{
	margin-top: 14px;
	padding: 12px 14px;
	border-radius: 18px;
	border: 1px solid rgba(16,185,129,0.28);
	background: rgba(236, 253, 245, 0.9);
	backdrop-filter: blur(10px);
	box-shadow: 0 18px 60px rgba(2,6,23,0.08);
	display:flex;
	align-items:center;
	justify-content: space-between;
	gap: 12px;
}
.btp-ticketbar__title{ font-weight: 1000; letter-spacing: -0.02em; }
.btp-ticketbar__meta{ margin-top: 4px; display:flex; flex-wrap: wrap; gap: 10px; color: rgba(15,23,42,0.78); font-size: 13px; }
.btp-ticketbar__meta code{ font-weight: 900; }
.btp-ticketbar__btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap: 8px;
	padding: 10px 12px;
	border-radius: 14px;
	border: 1px solid rgba(16,185,129,0.35);
	background: #10b981;
	color: #062818;
	font-weight: 1000;
	text-decoration: none;
	white-space: nowrap;
}
.btp-ticketbar__btn:hover{ filter: brightness(0.98); }

.btp-payalert{
	margin-top: 14px;
	padding: 12px 14px;
	border-radius: 18px;
	border: 1px solid rgba(2,6,23,0.10);
	background: rgba(255,255,255,0.85);
	backdrop-filter: blur(10px);
	box-shadow: 0 18px 60px rgba(2,6,23,0.08);
	font-weight: 850;
}
.btp-payalert[data-type="error"]{
	border-color: rgba(244,63,94,0.22);
	background: rgba(255, 241, 242, 0.9);
	color: rgba(136, 19, 55, 0.95);
}
.btp-pay__head{
	display:flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 14px;
	padding: 14px 14px 12px 14px;
	border: 1px solid var(--pay-border);
	border-radius: 18px;
	background: var(--pay-bg);
	backdrop-filter: blur(10px);
	box-shadow: var(--pay-shadow);
}
.btp-pay__brand{ display:flex; gap: 10px; align-items: center; }
.btp-pay__badge{
	width: 40px; height: 40px;
	border-radius: 14px;
	display:grid; place-items:center;
	background: #0b1220;
	color:#fff;
	font-weight: 1000;
	letter-spacing: 0.02em;
}
.btp-pay__title{ margin:0; font-size: 18px; letter-spacing: -0.02em; }
.btp-pay__sub{ color: var(--c-muted); font-size: 13px; margin-top: 2px; }
.btp-pay__meta{ display:flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.btp-pay__chip{
	display:flex; flex-direction: column; gap: 2px;
	padding: 10px 12px;
	border-radius: 16px;
	border: 1px solid var(--pay-border);
	background: rgba(255,255,255,0.8);
	min-width: 180px;
}
.btp-pay__chip span{ color: var(--c-muted); font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em; }
.btp-pay__chip code{ font-weight: 900; font-size: 13px; }
.btp-pay__chip--money strong{ font-size: 16px; font-weight: 1000; }

.btp-pay__grid{
	margin-top: 14px;
	display:grid;
	grid-template-columns: 1.15fr 0.85fr;
	gap: 14px;
}
.btp-pay__card{
	padding: 14px;
	border-radius: 18px;
	border: 1px solid var(--pay-border);
	background: var(--pay-bg);
	backdrop-filter: blur(10px);
	box-shadow: var(--pay-shadow);
}
.btp-pay__card-title{
	font-weight: 1000;
	letter-spacing: -0.02em;
	margin-bottom: 10px;
}
.btp-pay__qrwrap{
	background: rgba(255,255,255,0.92);
	border: 1px solid rgba(15,23,42,0.08);
	border-radius: 16px;
	padding: 12px;
	display:grid;
	place-items:center;
}
.btp-pay__qr{
	max-width: 340px;
	width: 100%;
	height: auto;
	border-radius: 14px;
}
.btp-pay__steps{ display:grid; gap: 8px; margin-top: 12px; }
.btp-pay__step{
	display:flex; gap: 10px; align-items: center;
	color: var(--c-ink);
	font-weight: 650;
}
.btp-pay__step span{
	width: 22px; height: 22px;
	border-radius: 10px;
	display:grid; place-items:center;
	background: rgba(2,6,23,0.06);
	border: 1px solid rgba(2,6,23,0.10);
	font-size: 12px;
	font-weight: 900;
}
.btp-pay__countdown{
	margin-top: 12px;
	display:flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	padding: 10px 12px;
	border-radius: 16px;
	border: 1px solid rgba(2,6,23,0.10);
	background: rgba(255,255,255,0.8);
}
.btp-pay__muted{ color: var(--c-muted); font-size: 12px; }
.btp-pay__time{ font-size: 20px; font-weight: 1000; letter-spacing: -0.03em; }
.btp-pay__status{
	font-weight: 900;
	padding: 10px 12px;
	border-radius: 14px;
	background: rgba(2,6,23,0.06);
	border: 1px solid rgba(2,6,23,0.10);
}
.btp-pay__note{ margin: 10px 0 0 0; color: var(--c-muted); }

.btp-pay__dl{ display:grid; gap: 10px; margin: 0; }
.btp-pay__dl > div{ display:flex; justify-content: space-between; gap: 10px; }
.btp-pay__dl dt{ color: var(--c-muted); font-size: 13px; }
.btp-pay__dl dd{ margin:0; font-weight: 850; text-align: right; }

.btp-pay__section{ margin-top: 14px; }
.btp-pay__section-title{ font-weight: 950; margin-bottom: 8px; }
.btp-pay__seatrow{ display:flex; justify-content: space-between; gap: 10px; padding: 8px 10px; border-radius: 14px; background: rgba(255,255,255,0.8); border: 1px solid rgba(2,6,23,0.08); }
.btp-pay__ul{ margin: 0; padding-left: 18px; color: var(--c-ink); }
.btp-pay__ul li{ margin: 6px 0; color: var(--c-muted); }

@media (max-width: 980px){
	.btp-pay__head{ flex-direction: column; align-items: stretch; }
	.btp-pay__meta{ justify-content: flex-start; }
	.btp-pay__grid{ grid-template-columns: 1fr; }
}