/**
 * Caribico platform responsive layer (tablet + mobile).
 * UI only — preserves desktop appearance above breakpoints.
 * Loaded last so it can override desktop-first !important grids.
 *
 * Breakpoints:
 *  1100px — tablet landscape / small laptop
 *   900px — tablet portrait
 *   760px — large phones / small tablets
 *   560px — phones
 */

/* —— General: contain overflow on narrow viewports only —— */
@media(max-width:1100px){
	html:has(body.caribico-platform-page),
	body.caribico-platform-page{
		overflow-x:hidden;
	}
	.caribico-platform-shell,
	.caribico-wb-app,
	.cwb-platform-main,
	#caribico-wb-results-region,
	.cwb-results-column,
	.cwb-agent-bookings,
	.cwb-workspace,
	.cwb-portal-booking-requests{
		max-width:100%!important;
		box-sizing:border-box!important;
	}
	/* Avoid 100vw + calc(50% - 50vw) horizontal bleed on tablets/phones */
	body.caribico-platform-page .caribico-platform-shell{
		width:100%!important;
		max-width:100%!important;
		margin-left:0!important;
		margin-right:0!important;
		left:auto!important;
		right:auto!important;
	}
}

/* Touch-friendly targets (phones / coarse pointers) */
@media(max-width:760px),(pointer:coarse){
	.caribico-wb-btn,
	.cwb-c-btn,
	.cwb-view-booking,
	.cwb-bookings-lifecycle-tab,
	.cwb-bookings-date-toggle,
	.cwb-auth-submit,
	.cwb-auth-password-toggle,
	.cwb-search-submit,
	.cwb-br-row-btn,
	.cwb-agent-profile-btn,
	.cwb-ops-agencies-filter-btn{
		min-height:44px!important;
	}
	.cwb-booking-card-actions .cwb-view-booking,
	.cwb-booking-card .cwb-view-booking{
		min-height:40px!important;
		height:auto!important;
		padding:8px 14px!important;
		font-size:12px!important;
	}
	.cwb-status-pill.is-icon-only,
	.cwb-booking-card-payment .cwb-status-pill,
	.cwb-booking-card-status .cwb-status-pill{
		min-width:36px!important;
		min-height:36px!important;
		display:inline-flex!important;
		align-items:center!important;
		justify-content:center!important;
		padding:0!important;
		box-sizing:border-box!important;
	}
}

/* —— Bookings list —— */
@media(max-width:1100px){
	.cwb-bookings-table{
		overflow-x:hidden!important;
		width:100%!important;
		max-width:100%!important;
	}
	.cwb-bookings-table-head{
		display:none!important;
	}
	/* Reset desktop Reference→Hotel pull that causes overflow on narrow screens */
	.cwb-bookings-table-head > :nth-child(2),
	.cwb-booking-card > .cwb-booking-property{
		margin-left:0!important;
		width:100%!important;
		max-width:100%!important;
	}
	.cwb-booking-card{
		display:grid!important;
		grid-template-columns:minmax(0,1fr) auto auto!important;
		grid-template-areas:
			"ref payment status"
			"hotel hotel hotel"
			"stay stay amount"
			"actions actions actions"!important;
		gap:8px 10px!important;
		align-items:start!important;
		padding:14px!important;
		min-width:0!important;
		width:100%!important;
		box-sizing:border-box!important;
	}
	.cwb-booking-card-ref{grid-area:ref!important;min-width:0}
	.cwb-booking-property{grid-area:hotel!important;min-width:0}
	.cwb-booking-card-stay{grid-area:stay!important;min-width:0}
	.cwb-booking-card-amount{grid-area:amount!important;text-align:right;justify-self:end}
	.cwb-booking-card-payment{grid-area:payment!important;justify-self:end;z-index:2}
	.cwb-booking-card-status{grid-area:status!important;justify-self:end;z-index:2}
	.cwb-booking-card-actions{
		grid-area:actions!important;
		justify-self:stretch!important;
		width:100%!important;
	}
	.cwb-booking-card-actions .cwb-view-booking{
		width:100%!important;
		max-width:none!important;
	}
	.cwb-booking-property strong,
	.cwb-booking-hotel-name{
		overflow-wrap:anywhere;
		word-break:break-word;
	}
	.cwb-booking-property p,
	.cwb-booking-guest-name{
		overflow-wrap:anywhere;
	}
}

@media(max-width:760px){
	.caribico-wb-app[data-view="bookings"],
	.caribico-wb-app[data-view="booking_requests"],
	.caribico-wb-app[data-view="finance"],
	.caribico-wb-app[data-view="dashboard"],
	.caribico-wb-app[data-view="agency"],
	.caribico-wb-app[data-view="agencies"],
	.caribico-wb-app[data-view="workspace"],
	.caribico-wb-app[data-view="profile"],
	.caribico-wb-app[data-view="settings"]{
		padding-left:12px!important;
		padding-right:12px!important;
	}
	.cwb-agent-bookings{padding-left:0!important;padding-right:0!important}
	.cwb-bookings-lifecycle{
		display:flex!important;
		width:100%!important;
		gap:8px!important;
	}
	.cwb-bookings-lifecycle-tab{
		flex:1 1 0!important;
		justify-content:center!important;
		min-height:44px!important;
	}
	.cwb-bookings-toolbar{
		padding:10px 12px!important;
		gap:8px!important;
	}
	.cwb-bookings-toolbar-row{
		flex-direction:column!important;
		align-items:stretch!important;
		gap:6px!important;
	}
	.cwb-bookings-toolbar-primary #cwb-bookings-search,
	.cwb-bookings-toolbar select,
	.cwb-bookings-clear,
	.cwb-bookings-date-toggle{
		width:100%!important;
		max-width:none!important;
		min-height:40px!important;
		height:40px!important;
		padding:0 10px!important;
		font-size:13px!important;
		line-height:1.25!important;
		box-sizing:border-box!important;
	}
	.cwb-bookings-date-field{flex:1 1 auto;width:100%}
	.cwb-bookings-clear{margin-left:0!important}
	.cwb-bookings-filter-label,
	.cwb-bookings-filter-group-label{
		margin:2px 0 0!important;
	}
	.cwb-booking-card{
		grid-template-columns:minmax(0,1fr) 48px 48px!important;
		gap:10px!important;
	}
	.cwb-booking-card-ref .cwb-booking-ref-code{
		font-size:14px!important;
		font-weight:500!important;
	}
	.cwb-booking-property strong{font-size:14px!important}
	.cwb-booking-card-amount strong{font-size:14px!important}
}

/* —— Booking details modal —— */
@media(max-width:900px){
	#cwb-booking-detail.cwb-booking-detail,
	.cwb-booking-detail{
		width:calc(100vw - 12px)!important;
		max-width:calc(100vw - 12px)!important;
		height:calc(100dvh - 12px)!important;
		max-height:calc(100dvh - 12px)!important;
		border-radius:12px!important;
		overflow:auto!important;
		-webkit-overflow-scrolling:touch;
	}
	#cwb-booking-detail .cwb-bd-layout.cwb-booking-detail-grid,
	#cwb-booking-detail .cwb-booking-detail-grid,
	.cwb-booking-detail-grid{
		grid-template-columns:1fr!important;
		gap:12px!important;
	}
	#cwb-booking-detail .cwb-bd-guests,
	#cwb-booking-detail .cwb-booking-guest-summary,
	#cwb-booking-detail .cwb-bd-panel-side{
		position:static!important;
		width:100%!important;
		max-width:100%!important;
	}
	#cwb-booking-detail .cwb-bd-block,
	#cwb-booking-detail .cwb-booking-section{
		min-width:0!important;
		max-width:100%!important;
	}
}

@media(max-width:760px){
	#cwb-booking-detail .cwb-bd-head{
		flex-direction:column!important;
		align-items:stretch!important;
		gap:10px!important;
	}
	#cwb-booking-detail .cwb-bd-head-actions,
	#cwb-booking-detail .cwb-bd-status{
		width:100%!important;
		justify-content:flex-start!important;
		flex-wrap:wrap!important;
	}
	#cwb-booking-detail .cwb-bd-tabs.cwb-c-tabs,
	#cwb-booking-detail .cwb-booking-tabs{
		display:flex!important;
		flex-wrap:nowrap!important;
		overflow-x:auto!important;
		-webkit-overflow-scrolling:touch;
		max-width:100%!important;
		gap:6px!important;
		padding-bottom:4px!important;
	}
	#cwb-booking-detail .cwb-bd-tabs .cwb-booking-tab,
	#cwb-booking-detail .cwb-bd-tabs .cwb-c-tab{
		flex:0 0 auto!important;
		min-height:40px!important;
		padding:8px 12px!important;
	}
	/* Full-width touch actions (exclude shared action-row buttons — see rule below) */
	#cwb-booking-detail .cwb-cancellation-inline .cwb-c-btn:not(.cwb-bd-action-btn),
	#cwb-booking-detail .cwb-cancellation-inline .cwb-check-cancellation:not(.cwb-bd-action-btn),
	#cwb-booking-detail .cwb-cancellation-inline .cwb-confirm-cancellation:not(.cwb-bd-action-btn),
	#cwb-booking-detail .cwb-cancellation-inline .cwb-cancelled-book-again:not(.cwb-bd-action-btn),
	#cwb-booking-detail .cwb-cancellation-inline .cwb-book-transfer:not(.cwb-bd-action-btn),
	#cwb-booking-detail .cwb-manual-request-actions .cwb-cancel-manual-request,
	#cwb-booking-detail .cwb-manual-request-actions .cwb-manual-confirmation-reminder--actions,
	#cwb-booking-detail .cwb-doc-action,
	#cwb-booking-detail .caribico-wb-btn,
	#cwb-booking-detail .cwb-c-btn:not(.cwb-bd-action-btn){
		width:100%!important;
		max-width:100%!important;
		min-height:44px!important;
		height:auto!important;
		align-self:stretch!important;
		justify-content:center!important;
	}
	/* Same ONE shared action-row metrics on mobile (Transfer-card 23px) */
	#cwb-booking-detail .cwb-bd-actions-row button.cwb-bd-action-btn{
		width:auto!important;
		max-width:max-content!important;
		min-height:23px!important;
		height:23px!important;
		max-height:23px!important;
		padding:5px 8px!important;
		font-size:10px!important;
		line-height:1!important;
		gap:4px!important;
		border-radius:4px!important;
		align-self:flex-start!important;
	}
	#cwb-booking-detail .cwb-bd-actions-row{
		flex-direction:column!important;
		align-items:flex-start!important;
	}
	#cwb-booking-detail .cwb-bd-actions-row > .cwb-cancellation-box{
		width:auto!important;
		max-width:100%!important;
	}
	#cwb-booking-detail .cwb-bd-actions-row > .cwb-cancellation-box:has(.cwb-cancellation-result:not([hidden])),
	#cwb-booking-detail .cwb-bd-actions-row > .cwb-book-transfer-box:has(.cwb-book-transfer-error){
		width:100%!important;
	}
	#cwb-booking-detail .cwb-cancellation-inline,
	#cwb-booking-detail .cwb-manual-request-actions,
	#cwb-booking-detail .cwb-doc-actions,
	#cwb-booking-detail .cwb-booking-detail-actions{
		display:flex!important;
		flex-direction:column!important;
		align-items:stretch!important;
		gap:8px!important;
		width:100%!important;
	}
	#cwb-booking-detail .cwb-bd-close.cwb-booking-detail-close{
		min-width:44px!important;
		min-height:44px!important;
	}
}

@media(max-width:560px){
	#cwb-booking-detail .cwb-bd-row,
	#cwb-booking-detail .cwb-bd-fact,
	#cwb-booking-detail .cwb-bd-cancel-row,
	#cwb-booking-detail .cwb-detail-cancel-policy,
	#cwb-booking-detail .cwb-detail-penalty-date,
	#cwb-booking-detail .cwb-detail-auto-cancellation,
	#cwb-booking-detail .cwb-detail-hotel,
	#cwb-booking-detail .cwb-detail-room,
	#cwb-booking-detail .cwb-detail-stay,
	#cwb-booking-detail .cwb-detail-sale,
	#cwb-booking-detail .cwb-bd-cancelled-status{
		grid-template-columns:18px minmax(0,1fr)!important;
		gap:8px!important;
	}
	#cwb-booking-detail .cwb-bd-row-body{
		display:grid!important;
		grid-column:2!important;
		gap:2px!important;
		min-width:0!important;
	}
}

/* —— Hotel search results —— */
@media(max-width:900px){
	.caribico-wb-hotel-card,
	.caribico-wb-hotel-card.is-compact{
		width:100%!important;
		max-width:100%!important;
		min-width:0!important;
		box-sizing:border-box!important;
	}
	.caribico-wb-hotel-card.is-compact{
		grid-template-columns:112px minmax(0,1fr)!important;
		padding:0 12px 12px 0!important;
	}
	.caribico-wb-hotel-card.is-compact .caribico-wb-hotel-thumb{
		max-width:112px!important;
		min-height:96px!important;
		aspect-ratio:1 / 1!important;
	}
	.caribico-wb-hotel-card.is-compact .caribico-wb-hotel-price{
		grid-column:1 / -1!important;
		flex-direction:row!important;
		justify-content:space-between!important;
		align-items:center!important;
		padding:8px 0 0!important;
		gap:10px!important;
	}
	.caribico-wb-hotel-card .caribico-wb-btn,
	.caribico-wb-hotel-price .caribico-wb-btn{
		min-height:44px!important;
		padding:0 14px!important;
	}
	.cwb-results-toolbar{
		flex-wrap:wrap!important;
		gap:10px!important;
	}
}

@media(max-width:760px){
	.cwb-results-layout{
		grid-template-columns:1fr!important;
		gap:12px!important;
	}
	.caribico-wb-filters{
		display:none!important;
	}
	.caribico-wb-app.filters-open .caribico-wb-filters{
		display:block!important;
		position:fixed!important;
		inset:auto 0 0 0!important;
		z-index:12000!important;
		max-height:min(78dvh,640px)!important;
		overflow:auto!important;
		-webkit-overflow-scrolling:touch;
		padding:16px!important;
		border-radius:16px 16px 0 0!important;
		background:#fff!important;
		box-shadow:0 -12px 40px rgba(16,24,40,.22)!important;
	}
	.caribico-wb-hotel-card,
	.caribico-wb-hotel-card.is-compact{
		grid-template-columns:1fr!important;
		padding:0 0 12px!important;
	}
	.caribico-wb-hotel-card.is-compact .caribico-wb-hotel-thumb{
		width:100%!important;
		max-width:none!important;
		min-height:0!important;
		height:auto!important;
		aspect-ratio:16 / 9!important;
		border-radius:10px 10px 0 0!important;
		grid-row:auto!important;
		overflow:hidden!important;
	}
	.caribico-wb-hotel-card.is-compact .caribico-wb-hotel-body,
	.caribico-wb-hotel-card.is-compact .caribico-wb-hotel-price{
		padding-left:12px!important;
		padding-right:12px!important;
		grid-column:auto!important;
		grid-row:auto!important;
	}
	.caribico-wb-hotel-card.is-compact .caribico-wb-hotel-price .caribico-wb-btn,
	.caribico-wb-hotel-price .caribico-wb-btn{
		width:100%!important;
		flex:1 1 100%!important;
	}
	.cwb-search-shell{
		padding:14px 12px 12px!important;
		border-radius:12px!important;
	}
	.cwb-search-row-primary,
	.cwb-search-row-meta{
		grid-template-columns:1fr!important;
		gap:8px!important;
		padding:8px!important;
		border-radius:12px!important;
	}
	.cwb-search-row-primary .caribico-wb-field{
		padding:6px 8px!important;
		border-bottom:1px solid #E4E9ED!important;
		min-height:0!important;
		height:auto!important;
	}
	.cwb-search-row-primary .cwb-field-search-submit{
		padding:6px 0 0!important;
		border-bottom:0!important;
		align-items:stretch!important;
		min-height:0!important;
	}
	.cwb-search-row-primary label{
		margin:0 0 2px!important;
		font-size:11px!important;
		line-height:1.2!important;
	}
	/* Compact mobile search inputs — no tall empty blocks */
	.cwb-search-shell .caribico-wb-field input,
	.cwb-search-shell .caribico-wb-field select,
	.cwb-search-shell .cwb-field-button,
	.cwb-search-row-primary input,
	.cwb-search-row-primary .cwb-field-button,
	.cwb-search-grid input,
	.cwb-search-grid select,
	.cwb-search-grid .cwb-field-button{
		height:40px!important;
		min-height:40px!important;
		max-height:40px!important;
		padding:0 10px!important;
		line-height:40px!important;
		font-size:14px!important;
		box-sizing:border-box!important;
		display:flex!important;
		align-items:center!important;
	}
	.cwb-search-row-primary .cwb-input-with-icon input,
	.cwb-search-shell .cwb-input-with-icon input,
	#cwb-destination{
		padding-left:40px!important;
	}
	.cwb-search-shell .cwb-field-button{
		justify-content:space-between!important;
	}
	.cwb-field-search-submit,
	.cwb-search-submit{
		width:100%!important;
		min-width:0!important;
		height:44px!important;
		min-height:44px!important;
		max-height:44px!important;
	}
	/* Search results: compact 16:9 hero, not a tall empty banner */
	.caribico-wb-hotel-card.is-compact .caribico-wb-hotel-thumb{
		width:100%!important;
		max-width:none!important;
		min-height:0!important;
		height:auto!important;
		aspect-ratio:16 / 9!important;
		border-radius:10px 10px 0 0!important;
		overflow:hidden!important;
	}
	.caribico-wb-hotel-card.is-compact .caribico-wb-hotel-thumb img,
	.caribico-wb-hotel-card.is-compact .cwb-hotel-image-placeholder{
		width:100%!important;
		height:100%!important;
		min-width:0!important;
		min-height:0!important;
		max-width:none!important;
		max-height:none!important;
		object-fit:cover!important;
		border-radius:0!important;
	}
	.caribico-wb-hotel-card.is-compact .cwb-hotel-image-placeholder{
		display:flex!important;
		flex-direction:column!important;
		align-items:center!important;
		justify-content:center!important;
		gap:4px!important;
		padding:12px!important;
		box-sizing:border-box!important;
	}
	.caribico-wb-hotel-card.is-compact .cwb-hotel-image-placeholder span{
		font-size:11px!important;
		letter-spacing:.12em!important;
		line-height:1.2!important;
	}
	.caribico-wb-hotel-card.is-compact .cwb-hotel-image-placeholder small{
		font-size:11px!important;
		line-height:1.25!important;
	}
	.cwb-booking-submit-row .caribico-wb-btn{
		width:100%!important;
		min-height:44px!important;
	}
}

/* —— Requests (workspace table + portal BR list) —— */
@media(max-width:900px){
	.cwb-request-list-layout,
	.cwb-request-open-layout{
		grid-template-columns:1fr!important;
	}
	.cwb-quote-summary,
	.cwb-request-summary{
		position:static!important;
	}
	.cwb-req-hotel-header{
		grid-template-columns:100px minmax(0,1fr)!important;
	}
	.cwb-req-hotel-media{width:100px!important}
	.cwb-workspace-header-row{
		flex-direction:column!important;
		align-items:stretch!important;
		gap:10px!important;
	}
	.cwb-workspace-card{
		grid-template-columns:1fr!important;
	}
	.cwb-workspace-card-actions{
		width:100%!important;
		justify-content:stretch!important;
	}
	.cwb-workspace-card-actions .caribico-wb-btn{
		width:100%!important;
		min-height:44px!important;
	}
}

@media(max-width:760px){
	/* Trip / quote request table → stacked cards (no page-level horizontal scroll) */
	.cwb-request-table-wrap{
		overflow:visible!important;
		border:0!important;
		background:transparent!important;
		box-shadow:none!important;
	}
	.cwb-request-table,
	.cwb-request-table.cwb-request-table--structured{
		min-width:0!important;
		width:100%!important;
		border-collapse:separate!important;
		border-spacing:0 10px!important;
	}
	.cwb-request-table thead{display:none!important}
	.cwb-request-table tbody{display:block!important;width:100%!important}
	.cwb-request-table tbody tr{
		display:grid!important;
		grid-template-columns:auto minmax(0,1fr) auto!important;
		gap:8px 10px!important;
		width:100%!important;
		margin:0 0 10px!important;
		padding:12px 14px!important;
		box-sizing:border-box!important;
		border:1px solid #E4E9ED!important;
		border-radius:10px!important;
		background:#fff!important;
		box-shadow:0 1px 3px rgba(16,24,40,.04);
	}
	.cwb-request-table tbody tr:nth-child(even) td,
	.cwb-request-table tbody tr:hover td{
		background:transparent!important;
	}
	.cwb-request-table tbody td{
		display:block!important;
		padding:0!important;
		border:0!important;
		min-width:0!important;
		white-space:normal!important;
	}
	.cwb-request-table .cwb-req-col-select{grid-column:1;grid-row:1;align-self:center}
	.cwb-request-table .cwb-req-col-number{grid-column:2;grid-row:1;align-self:center;font-weight:600!important;color:#101828!important}
	.cwb-request-table .cwb-req-col-status{grid-column:3;grid-row:1;justify-self:end;align-self:center}
	.cwb-request-table .cwb-req-col-hotels{grid-column:1 / -1;grid-row:2}
	.cwb-request-table .cwb-req-col-dates,
	.cwb-request-table .cwb-req-col-stay{grid-column:1 / -1;grid-row:3}
	.cwb-request-table .cwb-req-col-rooms{grid-column:1 / -1;grid-row:4}
	.cwb-request-table .cwb-req-col-actions{
		grid-column:1 / -1;
		grid-row:5;
		display:flex!important;
		flex-wrap:wrap!important;
		gap:8px!important;
	}
	.cwb-request-table .cwb-req-col-actions .caribico-wb-btn{
		flex:1 1 auto!important;
		min-height:44px!important;
		justify-content:center!important;
	}
	.cwb-req-promo-line,
	.cwb-req-services-line{white-space:normal!important}

	/* Manual booking-requests portal table */
	.cwb-br-table{min-width:0!important;width:100%!important}
	.cwb-portal-booking-requests .cwb-finance-ledger-table,
	.cwb-br-table.cwb-finance-ledger-table{
		display:block!important;
		min-width:0!important;
		overflow-x:visible!important;
	}
	.cwb-br-table thead{display:none!important}
	.cwb-br-table tbody{display:block!important}
	.cwb-br-table tbody tr{
		display:grid!important;
		gap:8px!important;
		margin:0 0 10px!important;
		padding:14px!important;
		border:1px solid #E4E9ED!important;
		border-radius:10px!important;
		background:#fff!important;
	}
	.cwb-br-table tbody td{
		display:block!important;
		padding:0!important;
		border:0!important;
		white-space:normal!important;
	}
	.cwb-br-row-btn{
		width:100%!important;
		margin:0 0 6px!important;
		min-height:44px!important;
	}
	.cwb-br-actions{
		flex-direction:column!important;
		align-items:stretch!important;
	}
	.cwb-br-actions .caribico-wb-btn{width:100%!important;min-height:44px!important}
	.cwb-br-grid,
	.cwb-br-grid-2{grid-template-columns:1fr!important}
	.cwb-req-room-row{
		grid-template-columns:1fr!important;
	}
	.cwb-req-room-pricing,
	.cwb-req-room-actions{
		grid-column:auto!important;
		width:100%!important;
	}
	.cwb-req-room-actions .caribico-wb-btn{width:100%!important;min-height:44px!important}
}

/* —— Authentication —— */
@media(max-width:760px){
	.cwb-auth-view{
		padding:20px 12px 32px!important;
		min-height:0!important;
	}
	.cwb-auth-card,
	.cwb-auth-card.is-wide,
	.caribico-wb-app[data-view="signin"] .cwb-auth-card,
	.caribico-wb-app[data-view="register"] .cwb-auth-card,
	.caribico-wb-app[data-view="register"] .cwb-auth-card.is-wide,
	.caribico-wb-app[data-view="registration_submitted"] .cwb-auth-card,
	.caribico-wb-app[data-view="set_password"] .cwb-auth-card{
		width:100%!important;
		max-width:100%!important;
		margin:0 auto!important;
		padding:24px 18px!important;
		box-sizing:border-box!important;
	}
	.cwb-auth-grid{grid-template-columns:1fr!important}
	.cwb-auth-field input,
	.cwb-auth-field select,
	.cwb-auth-field textarea,
	.cwb-auth-input-wrap input,
	.cwb-auth-input-wrap select,
	.cwb-auth-input-wrap textarea,
	.cwb-auth-input-plain{
		min-height:48px!important;
		font-size:16px!important; /* prevent iOS zoom */
	}
	.cwb-auth-card .cwb-auth-submit,
	.cwb-auth-form > .cwb-auth-submit,
	.cwb-auth-modal-actions .cwb-auth-submit,
	.cwb-auth-modal-actions .caribico-wb-btn{
		width:100%!important;
		min-height:48px!important;
	}
	.cwb-auth-modal-dialog{
		width:calc(100vw - 24px)!important;
		max-width:calc(100vw - 24px)!important;
		margin:12px auto!important;
		padding:24px 18px 20px!important;
		box-sizing:border-box!important;
	}
	.cwb-auth-modal-actions{flex-direction:column!important}
	.cwb-auth-password-toggle{
		min-width:44px!important;
		min-height:44px!important;
	}
	.cwb-set-password-logo{max-width:160px!important;height:auto!important}
	.cwb-set-password-meta{padding:12px!important}
}

/* —— Header / footer / platform chrome —— */
@media(max-width:760px){
	.cwb-platform-header-inner{
		padding:0 12px!important;
		gap:10px!important;
	}
	.cwb-platform-footer-inner{
		grid-template-columns:1fr!important;
		padding:16px 12px!important;
		gap:14px!important;
		text-align:center;
	}
	.cwb-footer-brand{align-items:center!important}
	.cwb-footer-brand span{margin-left:0!important}
	.cwb-platform-footer nav{
		flex-wrap:wrap!important;
		justify-content:center!important;
		gap:14px 18px!important;
	}
	.cwb-platform-footer p{
		white-space:normal!important;
		text-align:center!important;
	}
}

/* Tablet landscape polish without changing desktop ≥1101 */
@media(min-width:761px) and (max-width:1100px){
	.caribico-wb-app{
		padding-left:16px!important;
		padding-right:16px!important;
		box-sizing:border-box!important;
	}
	.cwb-platform-header-inner,
	.cwb-platform-footer-inner{
		padding-left:16px!important;
		padding-right:16px!important;
	}
	.caribico-wb-hotel-card.is-compact{
		grid-template-columns:140px minmax(0,1fr)!important;
	}
}

/* —— Mobile hamburger navigation (≤1100px) —— */
.cwb-mobile-header-tools,
.cwb-mobile-nav,
.cwb-mobile-nav-backdrop{
	display:none;
}
@media(max-width:1100px){
	.cwb-mobile-header-tools{
		display:flex!important;
		align-items:center;
		gap:10px;
		margin-left:auto;
		min-width:0;
	}
	.cwb-mobile-nav-context{
		display:block;
		max-width:42vw;
		overflow:hidden;
		text-overflow:ellipsis;
		white-space:nowrap;
		color:#fff;
		font-size:14px;
		font-weight:600;
		line-height:1.2;
	}
	.cwb-mobile-nav-toggle{
		display:inline-flex!important;
		align-items:center;
		justify-content:center;
		width:44px;
		height:44px;
		min-width:44px;
		padding:0;
		border:0;
		border-radius:8px;
		background:rgba(255,255,255,.12);
		color:#fff;
		cursor:pointer;
		flex:0 0 auto;
	}
	.cwb-mobile-nav-toggle:hover,
	.cwb-mobile-nav-toggle:focus{
		background:rgba(255,255,255,.2);
		outline:0;
	}
	.cwb-mobile-nav-toggle .cwb-icon{
		font-size:22px;
		line-height:1;
	}
	.cwb-mobile-nav-toggle .cwb-mobile-nav-icon-close,
	body.cwb-mobile-nav-open .cwb-mobile-nav-toggle .cwb-mobile-nav-icon-open{
		display:none!important;
	}
	body.cwb-mobile-nav-open .cwb-mobile-nav-toggle .cwb-mobile-nav-icon-close{
		display:inline-flex!important;
	}
	/* Hide desktop nav links + user dropdown; hamburger replaces them */
	.cwb-platform-nav{display:none!important}
	.cwb-platform-header-inner{
		display:flex!important;
		align-items:center!important;
		gap:12px!important;
	}
	.cwb-brand-header{flex:0 0 auto}
	.cwb-mobile-nav-backdrop{
		display:block;
		position:fixed;
		inset:0;
		z-index:10080;
		background:rgba(16,24,40,.45);
		border:0;
		padding:0;
		margin:0;
		cursor:pointer;
	}
	.cwb-mobile-nav-backdrop[hidden]{display:none!important}
	.cwb-mobile-nav{
		display:block;
		position:fixed;
		top:0;
		right:0;
		bottom:0;
		z-index:10090;
		width:min(320px,88vw);
		max-width:100%;
		pointer-events:none;
	}
	.cwb-mobile-nav[hidden]{display:none!important}
	.cwb-mobile-nav-panel{
		display:flex;
		flex-direction:column;
		height:100%;
		width:100%;
		background:#fff;
		color:#101828;
		box-shadow:-12px 0 40px rgba(16,24,40,.22);
		transform:translateX(100%);
		transition:transform .22s ease;
		overflow:auto;
		-webkit-overflow-scrolling:touch;
		pointer-events:auto;
		box-sizing:border-box;
	}
	body.cwb-mobile-nav-open .cwb-mobile-nav-panel{
		transform:translateX(0);
	}
	body.cwb-mobile-nav-open{
		overflow:hidden;
	}
	.cwb-mobile-nav-panel-head{
		display:flex;
		align-items:center;
		justify-content:space-between;
		gap:12px;
		padding:16px 16px 12px;
		border-bottom:1px solid #EAECF0;
		background:var(--cwb-primary,#1B5A7A);
		color:#fff;
		position:sticky;
		top:0;
		z-index:1;
	}
	.cwb-mobile-nav-panel-title{
		font-size:16px;
		font-weight:700;
	}
	.cwb-mobile-nav-close{
		display:inline-flex;
		align-items:center;
		justify-content:center;
		width:44px;
		height:44px;
		border:0;
		border-radius:8px;
		background:rgba(255,255,255,.12);
		color:#fff;
		cursor:pointer;
	}
	.cwb-mobile-nav-close .cwb-icon{font-size:20px}
	.cwb-mobile-nav-identity{
		display:flex;
		align-items:center;
		gap:12px;
		padding:16px;
		border-bottom:1px solid #EAECF0;
		background:#F8FAFB;
	}
	.cwb-mobile-nav-identity .cwb-user-avatar{
		color:var(--cwb-primary,#1B5A7A);
		font-size:22px;
	}
	.cwb-mobile-nav-identity strong,
	.cwb-mobile-nav-identity span{
		display:block;
		min-width:0;
		overflow:hidden;
		text-overflow:ellipsis;
		white-space:nowrap;
	}
	.cwb-mobile-nav-identity strong{
		font-size:14px;
		font-weight:700;
		color:#101828;
	}
	.cwb-mobile-nav-identity span{
		margin-top:2px;
		font-size:12px;
		color:#667085;
	}
	.cwb-mobile-nav-section{
		display:flex;
		flex-direction:column;
		padding:10px 8px;
		border-bottom:1px solid #F2F4F7;
	}
	.cwb-mobile-nav-section-label{
		margin:4px 10px 8px;
		font-size:10px;
		font-weight:700;
		letter-spacing:.04em;
		text-transform:uppercase;
		color:#667085;
	}
	.cwb-mobile-nav-link{
		display:flex!important;
		align-items:center;
		gap:12px;
		min-height:48px;
		padding:10px 12px!important;
		border-radius:8px;
		color:#101828!important;
		text-decoration:none!important;
		font-size:15px!important;
		font-weight:500!important;
		box-sizing:border-box;
	}
	.cwb-mobile-nav-link:hover,
	.cwb-mobile-nav-link:focus{
		background:#EAF3F7;
		outline:0;
	}
	.cwb-mobile-nav-link.is-active{
		background:#EAF3F7;
		color:var(--cwb-primary,#1B5A7A)!important;
		font-weight:700!important;
	}
	.cwb-mobile-nav-link .cwb-icon,
	.cwb-mobile-nav-link .cwb-menu-symbol{
		width:22px;
		flex:0 0 auto;
		color:var(--cwb-primary,#1B5A7A);
		font-size:18px;
		text-align:center;
	}
	.cwb-mobile-nav-footer{
		margin-top:auto;
		padding:8px;
		border-top:1px solid #EAECF0;
	}
	.cwb-mobile-nav-logout{
		color:#B42318!important;
	}
	.cwb-mobile-nav-logout .cwb-menu-symbol{color:#B42318}
}
@media(min-width:1101px){
	.cwb-mobile-header-tools,
	.cwb-mobile-nav,
	.cwb-mobile-nav-backdrop{display:none!important}
}

/* —— v1.38.17 Mobile UI polish: compact search + filters —— */
@media(max-width:800px){
	.cwb-search-row-primary{
		align-items:stretch!important;
		gap:0!important;
		padding:6px!important;
		border-radius:12px!important;
	}
	.cwb-search-row-primary .caribico-wb-field{
		display:flex!important;
		flex-direction:column!important;
		justify-content:center!important;
		min-height:0!important;
		height:auto!important;
		padding:6px 10px!important;
	}
	.cwb-search-row-primary .cwb-field-search-submit{
		min-height:0!important;
		height:auto!important;
		padding:8px 6px 6px!important;
		align-items:stretch!important;
	}
	.cwb-search-row-primary label{
		margin:0 0 2px!important;
		line-height:1.15!important;
	}
	.cwb-search-row-primary input,
	.cwb-search-row-primary .cwb-field-button,
	.cwb-search-row-primary select,
	.cwb-search-shell .caribico-wb-field input,
	.cwb-search-shell .caribico-wb-field select,
	.cwb-search-shell .cwb-field-button,
	.cwb-search-grid input,
	.cwb-search-grid select,
	.cwb-search-grid .cwb-field-button{
		height:40px!important;
		min-height:40px!important;
		max-height:40px!important;
		padding-top:0!important;
		padding-bottom:0!important;
		padding-left:8px!important;
		padding-right:8px!important;
		line-height:1.25!important;
		font-size:14px!important;
		box-sizing:border-box!important;
		align-self:stretch!important;
	}
	/* Keep space for absolute destination pin (do not collapse to 8px) */
	.cwb-search-row-primary .cwb-input-with-icon input,
	.cwb-search-shell .cwb-input-with-icon input,
	#cwb-destination{
		padding-left:40px!important;
	}
	.cwb-search-row-primary .cwb-field-button,
	.cwb-search-shell .cwb-field-button{
		display:flex!important;
		align-items:center!important;
	}
	.cwb-search-row-primary .cwb-search-submit,
	.cwb-search-shell .cwb-search-submit{
		height:44px!important;
		min-height:44px!important;
		max-height:44px!important;
		border-radius:8px!important;
		padding:0 14px!important;
	}
}

@media(max-width:760px){
	.cwb-bookings-toolbar{
		padding:10px!important;
		gap:6px!important;
		margin-bottom:10px!important;
	}
	.cwb-bookings-toolbar-row{
		gap:6px!important;
	}
	.cwb-bookings-toolbar-primary #cwb-bookings-search,
	.cwb-bookings-toolbar select,
	.cwb-bookings-toolbar input[type="date"],
	.cwb-bookings-date-toggle,
	.cwb-bookings-clear{
		min-height:40px!important;
		height:40px!important;
		max-height:40px!important;
		padding:0 10px!important;
		font-size:13px!important;
		line-height:1.25!important;
	}
	.cwb-bookings-lifecycle{
		gap:6px!important;
		margin-bottom:8px!important;
	}
	.cwb-bookings-lifecycle-tab{
		min-height:40px!important;
		padding:0 10px!important;
		font-size:13px!important;
	}
	.cwb-booking-card-payment .cwb-status-pill.is-icon-only,
	.cwb-booking-card-status .cwb-status-pill.is-icon-only{
		min-width:36px!important;
		min-height:36px!important;
		width:36px!important;
		height:36px!important;
	}
	.cwb-booking-card-actions .cwb-view-booking,
	.cwb-booking-card .cwb-view-booking{
		min-height:40px!important;
		padding:8px 14px!important;
	}
	.cwb-booking-card{
		padding:12px!important;
		gap:8px!important;
	}
}

@media(max-width:760px),(pointer:coarse){
	.cwb-bookings-toolbar-primary #cwb-bookings-search,
	.cwb-bookings-toolbar select,
	.cwb-bookings-date-toggle{
		min-height:40px!important;
	}
}

/* —— v1.38.18 Mobile occupancy (Rooms & guests) dismiss ——
 * Desktop (>1100px): stay-open editing, no Apply, no backdrop (unchanged).
 * Tablet/phone: Apply + outside tap close. Phone sheet (≤600px): backdrop + scroll lock.
 */
.cwb-occupancy-backdrop[hidden]{
	display:none!important;
}
.cwb-occupancy-done{
	display:none!important;
}
@media(max-width:1100px){
	.cwb-occupancy-done{
		display:inline-flex!important;
		align-items:center!important;
		justify-content:center!important;
		min-height:40px!important;
		flex:1 1 auto!important;
	}
	.cwb-occupancy-actions{
		display:flex!important;
		flex-wrap:wrap!important;
		align-items:stretch!important;
		gap:8px!important;
	}
	.cwb-occupancy-actions #cwb-add-room{
		flex:1 1 auto!important;
		min-height:40px!important;
	}
}
@media(max-width:600px){
	.cwb-occupancy-backdrop:not([hidden]){
		display:block!important;
		position:fixed!important;
		inset:0!important;
		z-index:9990!important;
		background:rgba(16,24,40,.4)!important;
		border:0!important;
		padding:0!important;
		margin:0!important;
		-webkit-tap-highlight-color:transparent;
	}
	.cwb-occupancy-panel{
		z-index:10000!important;
		max-height:min(75vh,calc(100dvh - 24px))!important;
		overflow:auto!important;
		-webkit-overflow-scrolling:touch;
	}
	body.cwb-occupancy-open{
		overflow:hidden!important;
	}
}

/* —— v1.38.20 Mobile hotel details + room cards ——
 * Compact hero (≈16:9), tighter header, room cards: thumb + name row,
 * footer with status / price / + / SELECT. Desktop ≥901 unchanged.
 */
@media(max-width:900px){
	.cwb-hotel-summary{
		display:grid!important;
		grid-template-columns:1fr!important;
		gap:10px!important;
		margin-bottom:14px!important;
		align-items:start!important;
	}
	.cwb-hotel-summary-media{
		min-width:0!important;
	}
	.cwb-hotel-summary-image,
	.cwb-hotel-summary .cwb-hotel-image-placeholder,
	.cwb-hotel-gallery.is-single .cwb-gallery-tile{
		width:100%!important;
		height:auto!important;
		min-height:0!important;
		max-height:none!important;
		aspect-ratio:16 / 9!important;
		object-fit:cover!important;
		border-radius:10px!important;
	}
	.cwb-hotel-summary .cwb-hotel-image-placeholder{
		display:flex!important;
		flex-direction:column!important;
		align-items:center!important;
		justify-content:center!important;
		gap:4px!important;
		padding:12px!important;
		box-sizing:border-box!important;
	}
	.cwb-hotel-summary .cwb-hotel-image-placeholder span{
		font-size:12px!important;
		letter-spacing:.12em!important;
	}
	.cwb-hotel-summary .cwb-hotel-image-placeholder small{
		font-size:12px!important;
	}
	.cwb-hotel-gallery:not(.is-single){
		height:auto!important;
		aspect-ratio:16 / 9!important;
		grid-template-columns:2fr 1fr!important;
		grid-template-rows:1fr 1fr!important;
		border-radius:10px!important;
	}
	.cwb-hotel-gallery:not(.is-single) .cwb-gallery-tile.is-primary{
		grid-row:1 / 3!important;
	}
	.cwb-hotel-summary-body{
		padding:0 2px!important;
		margin:0!important;
	}
	.cwb-hotel-heading-row{
		gap:8px!important;
		align-items:baseline!important;
		margin:0!important;
	}
	.cwb-hotel-heading-row h2,
	.caribico-wb-hotel-details > h2{
		margin:0!important;
		font-size:20px!important;
		line-height:1.25!important;
		font-weight:700!important;
	}
	.cwb-hotel-detail-stars{
		font-size:14px!important;
		letter-spacing:.5px!important;
	}
	.cwb-hotel-summary-address{
		margin:4px 0 0!important;
		font-size:12px!important;
	}
	.cwb-hotel-summary .caribico-wb-hotel-amenities{
		margin:6px 0 0!important;
	}
	.caribico-wb-hotel-details h3{
		font-size:16px!important;
		margin:10px 0 8px!important;
	}
}

@media(max-width:760px){
	/* Room card: thumb | name/notes ; footer status + price + actions */
	.cwb-room-row{
		display:grid!important;
		grid-template-columns:92px minmax(0,1fr)!important;
		grid-template-areas:
			"image info"
			"price price" !important;
		gap:8px 10px!important;
		align-items:start!important;
		padding:10px!important;
		margin-bottom:10px!important;
		border-radius:10px!important;
	}
	.cwb-room-image{
		grid-area:image!important;
		min-height:0!important;
		align-self:stretch!important;
	}
	.cwb-room-image img,
	.cwb-room-image-placeholder{
		width:100%!important;
		height:72px!important;
		min-height:72px!important;
		max-height:72px!important;
		object-fit:cover!important;
		border-radius:8px!important;
		box-sizing:border-box!important;
	}
	.cwb-room-image-placeholder{
		display:flex!important;
		flex-direction:column!important;
		align-items:center!important;
		justify-content:center!important;
		gap:2px!important;
		padding:6px!important;
	}
	.cwb-room-image-placeholder span{
		font-size:9px!important;
		letter-spacing:.1em!important;
		line-height:1.1!important;
	}
	.cwb-room-image-placeholder small{
		font-size:9px!important;
		line-height:1.15!important;
		margin:0!important;
	}
	.cwb-room-info{
		grid-area:info!important;
		padding:0!important;
		min-width:0!important;
	}
	.cwb-room-name{
		margin:0 0 4px!important;
		font-size:13px!important;
		line-height:1.3!important;
		font-weight:700!important;
	}
	.cwb-room-cancellation{
		margin:0!important;
	}
	.cwb-room-cancellation-label{
		margin:0 0 2px!important;
		font-size:10px!important;
	}
	.cwb-room-cancellation-text{
		font-size:12px!important;
		line-height:1.35!important;
		max-height:4.2em!important;
	}
	.cwb-room-price{
		grid-area:price!important;
		grid-column:1 / -1!important;
		display:flex!important;
		flex-direction:row!important;
		flex-wrap:wrap!important;
		align-items:center!important;
		justify-content:flex-start!important;
		gap:8px 10px!important;
		width:100%!important;
		padding:8px 0 0!important;
		margin:0!important;
		border-top:1px solid #EEF1F4!important;
		text-align:left!important;
		box-sizing:border-box!important;
	}
	.cwb-room-price .cwb-room-cancel-status{
		order:1!important;
		width:auto!important;
		max-width:100%!important;
		text-align:left!important;
		margin:0!important;
		flex:1 1 auto!important;
	}
	.cwb-room-price-value{
		order:2!important;
		font-size:14px!important;
		margin-left:auto!important;
		white-space:nowrap!important;
	}
	.cwb-room-actions{
		order:3!important;
		display:flex!important;
		align-items:center!important;
		gap:8px!important;
		width:auto!important;
		flex:0 0 auto!important;
	}
	.cwb-room-actions .cwb-add-trip{
		width:36px!important;
		height:36px!important;
		min-width:36px!important;
		min-height:36px!important;
		flex:0 0 auto!important;
	}
	.cwb-room-actions .caribico-wb-btn,
	.cwb-room-actions .cwb-select-room,
	.cwb-room-price .cwb-select-room{
		width:auto!important;
		min-width:88px!important;
		min-height:36px!important;
		height:36px!important;
		padding:0 14px!important;
		flex:0 0 auto!important;
	}
}

@media(max-width:560px){
	.cwb-hotel-heading-row h2,
	.caribico-wb-hotel-details > h2{
		font-size:18px!important;
	}
	.cwb-room-row{
		grid-template-columns:80px minmax(0,1fr)!important;
		padding:8px!important;
		gap:8px!important;
	}
	.cwb-room-image img,
	.cwb-room-image-placeholder{
		height:64px!important;
		min-height:64px!important;
		max-height:64px!important;
	}
}

/* —— v1.38.21 Mobile search UI: icon spacing, compact card, results, footer —— */
@media(max-width:800px){
	.cwb-search-shell{
		padding:10px 10px 8px!important;
		margin:0 0 10px!important;
		border-radius:12px!important;
		box-shadow:0 6px 18px rgba(16,24,40,.07)!important;
	}
	.cwb-search-heading{
		margin:0 0 6px!important;
	}
	.cwb-search-heading h1{
		font-size:22px!important;
		line-height:1.2!important;
	}
	.caribico-wb-app.has-results .cwb-search-heading,
	.caribico-wb-app.is-searching .cwb-search-heading{
		display:none!important;
	}
	.cwb-search-row-primary{
		padding:4px!important;
		gap:0!important;
		border-radius:12px!important;
		border:1px solid #E4E9ED!important;
		background:#fff!important;
		box-shadow:none!important;
	}
	.cwb-search-row-primary .caribico-wb-field{
		padding:6px 10px!important;
		border-right:0!important;
		border-bottom:1px solid #E4E9ED!important;
	}
	.cwb-search-row-primary .cwb-field-search-submit{
		border-bottom:0!important;
		padding:8px 6px 4px!important;
	}
	.cwb-search-row-primary label{
		margin:0 0 2px!important;
		font-size:11px!important;
		color:#667085!important;
	}
	.cwb-input-with-icon{
		position:relative!important;
	}
	.cwb-field-icon{
		left:10px!important;
		top:50%!important;
		transform:translateY(-50%)!important;
		font-size:17px!important;
		z-index:2!important;
		pointer-events:none!important;
		color:#344054!important;
	}
	.cwb-search-row-primary .cwb-input-with-icon input,
	.cwb-search-shell .cwb-input-with-icon input,
	#cwb-destination{
		padding-left:40px!important;
		padding-right:10px!important;
	}
	.cwb-search-row-primary .cwb-field-button,
	.cwb-search-row-primary .cwb-date-range-toggle{
		gap:8px!important;
		padding-left:8px!important;
	}
	.cwb-date-range-icon,
	.cwb-occupancy-icon{
		flex:0 0 auto!important;
	}
}

@media(max-width:760px){
	.caribico-platform-shell{
		gap:4px!important;
	}
	/* Avoid a huge empty flex gap between search widget and footer on empty search */
	.caribico-platform-shell:not(:has(.caribico-wb-app.has-results)):not(:has(.caribico-wb-app.is-searching)) .cwb-platform-main{
		flex:0 1 auto!important;
	}
	.cwb-platform-footer{
		margin-top:8px!important;
	}
	.cwb-platform-footer-inner{
		min-height:0!important;
		padding:12px 12px 14px!important;
		gap:8px!important;
	}
	.cwb-footer-brand img{
		width:148px!important;
		height:auto!important;
	}
	.cwb-footer-brand span{
		margin-top:0!important;
		font-size:9px!important;
	}
	.cwb-platform-footer nav{
		gap:10px 14px!important;
	}
	.cwb-platform-footer a{
		font-size:12px!important;
	}
	.cwb-platform-footer p{
		font-size:11px!important;
		line-height:1.35!important;
	}

	.cwb-results-layout{
		gap:8px!important;
		margin-top:0!important;
	}
	.cwb-results-toolbar{
		min-height:0!important;
		padding:0 2px 6px!important;
		gap:6px!important;
		align-items:flex-start!important;
		flex-direction:column!important;
	}
	.cwb-results-header-meta{
		font-size:13px!important;
		gap:2px 0!important;
		width:100%!important;
	}
	.cwb-results-freshness{
		width:100%!important;
		gap:4px 8px!important;
	}
	.cwb-results-sep{margin:0 6px!important}
	.cwb-refresh-inline,
	#cwb-refresh-results.cwb-refresh-inline{
		margin-left:0!important;
		min-height:30px!important;
		height:30px!important;
		padding:0 10px!important;
		font-size:12px!important;
	}
	.caribico-wb-results-list{
		gap:10px!important;
	}

	/* Shorter result image band so cards appear sooner */
	.caribico-wb-hotel-card.is-compact .caribico-wb-hotel-thumb{
		aspect-ratio:2.2 / 1!important;
		max-height:128px!important;
	}
	.caribico-wb-hotel-card.is-compact{
		padding:0 0 10px!important;
		margin:0!important;
	}
	.caribico-wb-hotel-card.is-compact .caribico-wb-hotel-body,
	.caribico-wb-hotel-card.is-compact .caribico-wb-hotel-price{
		padding-left:10px!important;
		padding-right:10px!important;
		padding-top:8px!important;
	}
}

@media(max-width:560px){
	.caribico-wb-hotel-card.is-compact .caribico-wb-hotel-thumb{
		aspect-ratio:2.4 / 1!important;
		max-height:112px!important;
	}
	.cwb-search-shell{
		padding:8px!important;
		margin-bottom:8px!important;
	}
}
