.apbt-form-wrap { max-width: 640px; }
.apbt-form-wrap p label { display: block; font-weight: 600; margin-bottom: 4px; }
.apbt-form-wrap input[type=text],
.apbt-form-wrap input[type=email],
.apbt-form-wrap input[type=password],
.apbt-form-wrap input[type=number],
.apbt-form-wrap select,
.apbt-form-wrap textarea { width: 100%; padding: 8px 10px; box-sizing: border-box; border: 1px solid #ccc; border-radius: 4px; }
.apbt-form-wrap label.apbt-checkbox { display: flex; align-items: center; gap: 6px; font-weight: 400; }

/* Polished card treatment for auth flows (Login, Registration, Reset Password) */
.apbt-login-form, .apbt-registration-form, .apbt-registration-email-form, .apbt-otp-form, .apbt-reset-password-form {
	max-width: 460px;
	margin: 24px auto;
	padding: 32px;
	background: #fff;
	border-radius: 12px;
	border-top: 4px solid #d9481f;
	box-shadow: 0 4px 24px rgba(0,0,0,.06);
}
.apbt-login-form h2, .apbt-registration-form h2, .apbt-registration-email-form h2, .apbt-otp-form h2, .apbt-reset-password-form h2 {
	margin-top: 0;
	font-size: 24px;
}
.apbt-login-form input[type=text], .apbt-login-form input[type=email], .apbt-login-form input[type=password],
.apbt-registration-form input[type=text], .apbt-registration-form input[type=email], .apbt-registration-form input[type=password],
.apbt-registration-email-form input[type=email],
.apbt-otp-form input[type=text],
.apbt-reset-password-form input[type=password] {
	padding: 11px 14px;
	border-radius: 8px;
	border-color: #e2e2e2;
	font-size: 15px;
}
.apbt-login-form button[type=submit], .apbt-registration-form button[type=submit], .apbt-registration-email-form button[type=submit], .apbt-otp-form button[type=submit], .apbt-reset-password-form button[type=submit] {
	width: 100%;
	padding: 12px !important;
	font-size: 15px;
	border-radius: 8px !important;
}

.apbt-notice { padding: 10px 14px; border-radius: 4px; margin-bottom: 16px; }
.apbt-notice-success { background: #e6f6e9; color: #1a6b2e; border: 1px solid #b8e0c2; }
.apbt-notice-error { background: #fbe9e9; color: #a30000; border: 1px solid #f1bcbc; }
.apbt-notice-info { background: #eaf2fb; color: #144a7c; border: 1px solid #bcd6f1; }

.apbt-dash-header { background: #fff; border: 1px solid #eee; border-radius: 10px; padding: 20px 24px; margin-bottom: 16px; box-shadow: 0 1px 4px rgba(0,0,0,.04); }
.apbt-dash-header-info h2 { margin: 0 0 6px; font-size: 22px; font-weight: 700; color: #1a1a1a; }
.apbt-dash-meta { color: #767676; font-size: 14px; }
.apbt-dash-meta-sep { margin: 0 8px; color: #ccc; }
.apbt-dash-meta strong { color: #333; }

.apbt-dashboard-tabs { display: flex; gap: 6px; background: #f2f2f2; padding: 5px; border-radius: 10px; margin-bottom: 18px; flex-wrap: wrap; }
.apbt-tab-link { padding: 9px 18px; border: none; border-radius: 7px; text-decoration: none; color: #555; background: transparent; font-weight: 600; font-size: 14px; transition: all .15s ease; }
.apbt-tab-link:hover { color: #d9481f; }
.apbt-tab-link.apbt-tab-active { background: #fff; color: #d9481f; box-shadow: 0 1px 4px rgba(0,0,0,.08); }

.apbt-bookings-toolbar { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; }

.apbt-filter-toggle-btn { display: inline-flex; align-items: center; gap: 6px; padding: 9px 16px; border: 1px solid #ddd; border-radius: 7px; background: #fff; cursor: pointer; font-weight: 600; font-size: 14px; color: #333; }
.apbt-filter-toggle-btn:hover { border-color: #bbb; }
.apbt-filter-count { background: #d9481f; color: #fff; border-radius: 999px; font-size: 11px; font-weight: 700; padding: 1px 7px; }

.apbt-filter-panel { background: #fafafa; border: 1px solid #eee; border-radius: 10px; padding: 18px; margin-bottom: 18px; }
.apbt-filter-form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 14px; align-items: end; }
.apbt-filter-field-wide { grid-column: span 2; }
.apbt-filter-field label { display: block; font-size: 12px; font-weight: 600; color: #666; margin-bottom: 4px; text-transform: uppercase; letter-spacing: .3px; }
.apbt-filter-field select, .apbt-filter-field input { width: 100%; padding: 8px 10px; border: 1px solid #ddd; border-radius: 6px; box-sizing: border-box; font-size: 14px; }
.apbt-filter-actions { display: flex; align-items: center; gap: 14px; grid-column: 1 / -1; }

.apbt-table-wrap { overflow-x: auto; }
.apbt-agent-code { color: #555; margin: 0; }
.apbt-last-login { color: #888; font-size: 13px; margin: 4px 0 0; }


.apbt-filter-form { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin: 14px 0; }
.apbt-filter-form select, .apbt-filter-form input { padding: 6px 8px; border: 1px solid #ccc; border-radius: 4px; }

.apbt-pagination { margin-top: 14px; display: flex; gap: 6px; }
.apbt-page-link { padding: 4px 10px; border: 1px solid #ddd; border-radius: 4px; text-decoration: none; color: #333; }
.apbt-page-current { background: #2271b1; color: #fff; border-color: #2271b1; }

.apbt-actions-cell { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.apbt-btn-secondary { background: #f0f0f0 !important; color: #333 !important; }

.apbt-btn { display: inline-block; padding: 10px 18px !important; border-radius: 4px !important; text-decoration: none; border: none !important; cursor: pointer; font-weight: 600; box-shadow: none !important; }
.apbt-btn-primary { background: #2271b1 !important; color: #fff !important; }
.apbt-btn-primary:hover { background: #135e96 !important; color: #fff !important; }
.apbt-btn-small { padding: 5px 12px !important; font-size: 13px; }

.apbt-tour-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px,1fr)); gap: 20px; }
.apbt-tour-card { border: 1px solid #e2e2e2; border-radius: 6px; padding: 14px; }
.apbt-tour-card img { width: 100%; height: auto; border-radius: 4px; }
.apbt-tour-price { font-size: 18px; font-weight: 700; }
.apbt-tour-price-label { font-size: 12px; font-weight: 400; color: #777; }

.apbt-table { width: 100%; border-collapse: collapse; }
.apbt-table th, .apbt-table td { padding: 10px 8px; border-bottom: 1px solid #e5e5e5; text-align: left; font-size: 14px; }
.apbt-table thead th { background: #fafafa; font-weight: 600; color: #444; font-size: 12px; text-transform: uppercase; letter-spacing: .3px; }
.apbt-table tbody tr:hover { background: #fafafa; }

@media (max-width: 782px) {
	.apbt-responsive-table thead { display: none; }
	.apbt-responsive-table, .apbt-responsive-table tbody, .apbt-responsive-table tr, .apbt-responsive-table td { display: block; width: 100%; }
	.apbt-responsive-table tr { margin-bottom: 14px; border: 1px solid #e5e5e5; border-radius: 10px; padding: 10px 14px; box-shadow: 0 1px 3px rgba(0,0,0,.05); }
	.apbt-responsive-table tbody tr:hover { background: #fff; }
	.apbt-responsive-table td { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 8px 2px; border-bottom: 1px solid #f2f2f2; text-align: right; }
	.apbt-responsive-table td:last-child { border-bottom: none; }
	.apbt-responsive-table td::before { content: attr(data-label); font-weight: 600; color: #666; text-align: left; font-size: 12px; text-transform: uppercase; letter-spacing: .3px; }
	.apbt-responsive-table td.apbt-actions-cell { flex-direction: column; align-items: stretch; }
	.apbt-responsive-table td.apbt-actions-cell::before { margin-bottom: 6px; }
	.apbt-filter-form-grid { grid-template-columns: 1fr; }
	.apbt-filter-field-wide { grid-column: span 1; }
}

.apbt-badge { display: inline-block; padding: 3px 10px; border-radius: 12px; font-size: 12px; font-weight: 600; text-transform: capitalize; }
.apbt-badge-unpaid { background: #fbe9e9; color: #a30000; }
.apbt-badge-partial { background: #fff4e0; color: #996800; }
.apbt-badge-fully_paid { background: #e6f6e9; color: #1a6b2e; }
.apbt-badge-pending_review { background: #fff4e0; color: #996800; }
.apbt-badge-approved { background: #e6f6e9; color: #1a6b2e; }
.apbt-badge-rejected { background: #fbe9e9; color: #a30000; }
.apbt-awaiting { color: #996800; font-weight: 600; font-size: 13px; }
.apbt-fully-paid { color: #1a6b2e; font-weight: 600; }

.apbt-modal { position: fixed; inset: 0; background: rgba(0,0,0,.5); z-index: 100000; }
#apbt-share-modal { z-index: 100010; }
.apbt-modal-content { background: #fff; max-width: 420px; margin: 8% auto; padding: 24px; border-radius: 6px; position: relative; max-height: 84vh; overflow-y: auto; }
.apbt-modal-close { position: absolute; top: 10px; right: 16px; font-size: 22px; cursor: pointer; }
#apbt-details-modal .apbt-modal-content { max-width: 640px; max-height: 82vh; overflow-y: auto; }

.apbt-agent-menu { display: flex; gap: 12px; align-items: center; }
.apbt-agent-menu-link { text-decoration: none; font-weight: 600; }
.apbt-pill { display: inline-block; padding: 10px 22px; border-radius: 999px; font-size: 14px; transition: opacity .15s ease; }
.apbt-pill:hover { opacity: .85; }
.apbt-pill-outline { color: #d9481f; border: 2px solid #d9481f; background: transparent; }
.apbt-pill-solid { color: #fff !important; background: linear-gradient(90deg, #d9481f, #f2822c); border: none; }

.apbt-otp-form input[name=otp_code] { font-size: 24px; letter-spacing: 6px; text-align: center; max-width: 180px; }
.apbt-btn-link { background: none !important; border: none !important; color: #2271b1 !important; text-decoration: underline; cursor: pointer; padding: 0 !important; font-size: 14px; box-shadow: none !important; }
.apbt-btn-link-danger { color: #a00 !important; }

.apbt-availability-table { width: 100%; border-collapse: collapse; margin: 14px 0; }
.apbt-availability-table th, .apbt-availability-table td { padding: 8px 10px; border-bottom: 1px solid #e5e5e5; text-align: left; font-size: 14px; }
.apbt-availability-table th { background: #f6f6f6; font-weight: 600; }
.apbt-availability-earn { font-size: 12px; color: #279c63; font-weight: 600; }

.apbt-booking-step-heading { display: flex; align-items: flex-start; gap: 10px; margin: 18px 0 10px; }
.apbt-booking-step-number { flex: 0 0 26px; height: 26px; border-radius: 50%; background: #d9481f; color: #fff; font-weight: 700; font-size: 13px; display: flex; align-items: center; justify-content: center; }
.apbt-availability-heading { margin: 0 0 10px; font-size: 18px; font-weight: 700; color: #1a1a1a; }
.apbt-availability-wrap { background: #fff; border: 1px solid #eee; border-radius: 10px; padding: 20px; margin: 20px 0; box-shadow: 0 2px 10px rgba(0,0,0,.04); }
.apbt-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }

@media (max-width: 782px) {
	.apbt-availability-wrap { padding: 12px; margin: 12px 0; }
	.apbt-availability-heading { font-size: 16px; }
	.apbt-availability-table { min-width: 620px; } /* keeps columns readable; the wrapper scrolls instead of squashing them */
	.apbt-availability-table th, .apbt-availability-table td { padding: 6px 8px; font-size: 13px; }
	.apbt-booking-step-heading { gap: 8px; }
	.apbt-booking-step-heading h4 { font-size: 14px; }
	.apbt-fe-occupancy-unit .apbt-admin-form-grid,
	.apbt-fe-occupancy-person > div { flex-direction: column; }
	.apbt-fe-occupancy-person input, .apbt-fe-occupancy-person select { width: 100% !important; flex: 1 1 100% !important; margin-bottom: 6px; }
	#apbt-fe-submit-booking-btn { width: 100%; }
	#apbt-add-unit-btn, #apbt-fe-add-unit-btn { width: 100%; }
}
.apbt-availability-pagination { display: flex; gap: 6px; margin-top: 10px; }
.apbt-availability-pagination .apbt-page-link { display: inline-block; padding: 5px 11px; border: 1px solid #ddd; border-radius: 5px; text-decoration: none; color: #333; font-size: 13px; }
.apbt-availability-pagination .apbt-page-current { background: #d9481f; border-color: #d9481f; color: #fff; }

.apbt-stat-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; margin: 16px 0; }
.apbt-stat-card { display: flex; flex-direction: column; padding: 18px; border-radius: 8px; color: #fff; box-shadow: 0 2px 6px rgba(0,0,0,.08); }
.apbt-stat-number { font-size: 26px; font-weight: 700; line-height: 1.2; }
.apbt-stat-label { font-size: 13px; opacity: .9; margin-top: 4px; }
.apbt-stat-warning { background: linear-gradient(135deg, #f2a93b, #e88a1f); }
.apbt-stat-danger  { background: linear-gradient(135deg, #e0574f, #c8362e); }
.apbt-stat-info    { background: linear-gradient(135deg, #4a90d9, #2b6cb5); }
.apbt-stat-success { background: linear-gradient(135deg, #3fb87f, #279c63); }

.apbt-gateway-cards { display: flex; gap: 12px; margin-top: 8px; }
.apbt-gateway-card { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 16px 10px; border: 2px solid #e2e2e2; border-radius: 8px; cursor: pointer; transition: all .15s ease; background: #fafafa; }
.apbt-gateway-card:hover { border-color: #bbb; }
.apbt-gateway-icon { font-size: 26px; }
.apbt-gateway-name { font-weight: 700; font-size: 14px; }
.apbt-gateway-razorpay .apbt-gateway-name { color: #0d2b64; }
.apbt-gateway-cashfree .apbt-gateway-name { color: #00b9f1; }
.apbt-gateway-card.apbt-gateway-selected { background: #fff; box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.apbt-gateway-razorpay.apbt-gateway-selected { border-color: #0d2b64; }
.apbt-gateway-cashfree.apbt-gateway-selected { border-color: #00b9f1; }

.apbt-form-card { background: #fff; border: 1px solid #eee; border-radius: 10px; padding: 22px 24px; max-width: 640px; }
.apbt-form-card h3 { margin-top: 0; }
.apbt-form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 4px 16px; }
.apbt-form-field-wide { grid-column: 1 / -1; }
.apbt-form label { display: block; font-weight: 600; margin-bottom: 4px; font-size: 14px; color: #333; }
.apbt-form input[type=text], .apbt-form input[type=password], .apbt-form textarea { width: 100%; padding: 9px 11px; box-sizing: border-box; border: 1px solid #ddd; border-radius: 6px; font-size: 14px; margin-top: 4px; }

.apbt-otp-step { border-top: 1px solid #eee; margin-top: 16px; padding-top: 16px; }
.apbt-otp-input { font-size: 24px; letter-spacing: 6px; text-align: center; max-width: 180px; padding: 8px; border: 1px solid #ddd; border-radius: 6px; display: block; margin: 10px 0; }

.apbt-profile-editable-header { display: flex; justify-content: space-between; align-items: center; }
.apbt-profile-editable-header h4 { margin: 0; }
.apbt-profile-readonly-info { margin-bottom: 6px; }
.apbt-view-mode input[readonly], .apbt-view-mode textarea[readonly] { background: #f8f8f8; border-color: #eee; color: #555; cursor: default; }
.apbt-field-locked { pointer-events: none; background: #f8f8f8 !important; border-color: #eee !important; color: #555; }

.apbt-sort-link { color: inherit; text-decoration: none; }
.apbt-sort-link:hover { color: #d9481f; }
.apbt-sort-link.apbt-sort-active { color: #d9481f; }
.apbt-sort-icon { font-size: 11px; opacity: .45; }
.apbt-sort-active .apbt-sort-icon { opacity: 1; }

.apbt-password-wrap { position: relative; display: block; }
.apbt-password-wrap input[type=password], .apbt-password-wrap input[type=text] { padding-right: 38px !important; }
.apbt-password-toggle { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); cursor: pointer; font-size: 16px; opacity: .6; user-select: none; }
.apbt-password-toggle:hover { opacity: 1; }

.apbt-phone-field { display: flex; gap: 6px; max-width: 100%; }
.apbt-phone-field .apbt-country-picker { flex: 0 0 200px; min-width: 0; position: relative; }
.apbt-phone-field .apbt-phone-number { flex: 1 1 auto; min-width: 0; }
.apbt-country-search-input { width: 100%; padding: 9px 11px; border: 1px solid #ddd; border-radius: 6px; font-size: 14px; box-sizing: border-box; }
.apbt-country-options { position: absolute; top: 100%; left: 0; right: 0; z-index: 1000; background: #fff; border: 1px solid #ddd; border-radius: 6px; max-height: 220px; overflow-y: auto; box-shadow: 0 4px 12px rgba(0,0,0,.1); margin-top: 2px; }
.apbt-country-option { padding: 8px 12px; cursor: pointer; font-size: 13px; }
.apbt-country-option:hover { background: #fdf8f5; }

.apbt-detail-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; margin: 10px 0 16px; }
.apbt-detail-grid > div { display: flex; flex-direction: column; }
.apbt-detail-label { font-size: 11px; font-weight: 600; color: #888; text-transform: uppercase; letter-spacing: .3px; margin-bottom: 2px; }
