/* ==========================================================================
   PalasGo Worker Portal v2.1
   Mobile-first ops dashboard — aggressive !important overrides for Elementor
   ========================================================================== */

:root {
	--pgw-primary: #0f766e;
	--pgw-primary-light: #14b8a6;
	--pgw-primary-bg: #f0fdfa;
	--pgw-dark: #0f172a;
	--pgw-gray-50: #f8fafc;
	--pgw-gray-100: #f1f5f9;
	--pgw-gray-200: #e2e8f0;
	--pgw-gray-300: #cbd5e1;
	--pgw-gray-400: #94a3b8;
	--pgw-gray-500: #64748b;
	--pgw-gray-600: #475569;
	--pgw-gray-700: #334155;
	--pgw-gray-800: #1e293b;
	--pgw-gray-900: #0f172a;
	--pgw-white: #ffffff;
	--pgw-red: #ef4444;
	--pgw-red-bg: #fef2f2;
	--pgw-amber: #f59e0b;
	--pgw-amber-bg: #fffbeb;
	--pgw-green: #22c55e;
	--pgw-green-bg: #f0fdf4;
	--pgw-blue: #3b82f6;
	--pgw-blue-bg: #eff6ff;
	--pgw-radius: 10px;
	--pgw-shadow: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);
	--pgw-shadow-lg: 0 10px 25px rgba(0,0,0,.08), 0 4px 10px rgba(0,0,0,.04);
	--pgw-font: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;
	--pgw-bottom-nav-h: 56px;
	--pgw-header-h: 48px;
}

/* ==========================================================================
   NUCLEAR RESET — override Elementor/theme globals inside portal
   ========================================================================== */

.pgw-app,
.pgw-app *,
.pgw-app *::before,
.pgw-app *::after,
.pgw-login-wrap,
.pgw-login-wrap *,
.pgw-login-wrap *::before,
.pgw-login-wrap *::after {
	box-sizing: border-box !important;
	margin: 0 !important;
	padding: 0 !important;
	font-family: var(--pgw-font) !important;
	line-height: 1.5 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	text-decoration: none !important;
	border: none !important;
	outline: none !important;
	box-shadow: none !important;
	background: transparent !important;
	color: var(--pgw-gray-900) !important;
	-webkit-tap-highlight-color: rgba(0,0,0,.03) !important;
}

/* Re-apply specific styles after reset */
.pgw-app a,
.pgw-app a:hover,
.pgw-app a:focus,
.pgw-app a:visited,
.pgw-login-wrap a,
.pgw-login-wrap a:hover,
.pgw-login-wrap a:focus,
.pgw-login-wrap a:visited {
	color: inherit !important;
	text-decoration: none !important;
}

.pgw-app svg,
.pgw-login-wrap svg {
	fill: none !important;
	background: none !important;
}

.pgw-app img {
	max-width: 100% !important;
	height: auto !important;
}

/* ==========================================================================
   Login
   ========================================================================== */

.pgw-login-wrap {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-height: 70vh !important;
	padding: 2rem 1rem !important;
}
.pgw-login-card {
	width: 100% !important;
	max-width: 400px !important;
	background: var(--pgw-white) !important;
	border-radius: var(--pgw-radius) !important;
	box-shadow: var(--pgw-shadow-lg) !important;
	padding: 2.5rem 2rem !important;
	border: 1px solid var(--pgw-gray-200) !important;
}
.pgw-login-header {
	text-align: center !important;
	margin-bottom: 1.5rem !important;
}
.pgw-login-icon {
	width: 48px !important;
	height: 48px !important;
	margin: 0 auto 1rem !important;
	background: var(--pgw-primary-bg) !important;
	border-radius: 12px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	color: var(--pgw-primary) !important;
}
.pgw-login-icon svg { width: 24px !important; height: 24px !important; color: var(--pgw-primary) !important; stroke: currentColor !important; }
.pgw-login-header h2 {
	font-size: 1.4rem !important;
	font-weight: 700 !important;
	color: var(--pgw-gray-900) !important;
	margin-bottom: .35rem !important;
}
.pgw-login-header p {
	font-size: .875rem !important;
	color: var(--pgw-gray-500) !important;
}
.pgw-login-error {
	background: var(--pgw-red-bg) !important;
	color: var(--pgw-red) !important;
	border: 1px solid #fecaca !important;
	border-radius: 8px !important;
	padding: .75rem 1rem !important;
	font-size: .85rem !important;
	margin-bottom: 1rem !important;
}
.pgw-field { margin-bottom: 1rem !important; }
.pgw-field label {
	display: block !important;
	font-size: .8rem !important;
	font-weight: 600 !important;
	color: var(--pgw-gray-700) !important;
	margin-bottom: .35rem !important;
	text-transform: uppercase !important;
	letter-spacing: .03em !important;
}
.pgw-field input[type="text"],
.pgw-field input[type="password"] {
	width: 100% !important;
	padding: .65rem .85rem !important;
	font-size: .95rem !important;
	border: 1px solid var(--pgw-gray-300) !important;
	border-radius: 8px !important;
	background: var(--pgw-gray-50) !important;
	color: var(--pgw-gray-900) !important;
	transition: border-color .15s, box-shadow .15s !important;
	box-shadow: none !important;
}
.pgw-field input:focus {
	border-color: var(--pgw-primary) !important;
	box-shadow: 0 0 0 3px rgba(15,118,110,.12) !important;
}
.pgw-field--check { display: flex !important; align-items: center !important; }
.pgw-field--check label {
	font-size: .85rem !important; font-weight: 400 !important; text-transform: none !important;
	letter-spacing: 0 !important; color: var(--pgw-gray-600) !important; display: flex !important;
	align-items: center !important; gap: .4rem !important; cursor: pointer !important;
}
.pgw-field--check input[type="checkbox"] {
	width: 16px !important; height: 16px !important; margin-right: 4px !important;
}

/* ==========================================================================
   Buttons
   ========================================================================== */

.pgw-btn {
	display: inline-flex !important; align-items: center !important; justify-content: center !important; gap: .4rem !important;
	padding: .55rem 1rem !important; font-size: .85rem !important; font-weight: 600 !important;
	border: none !important; border-radius: 8px !important; cursor: pointer !important;
	transition: all .15s !important; line-height: 1.4 !important;
}
.pgw-btn--primary { width: 100% !important; background: var(--pgw-primary) !important; color: var(--pgw-white) !important; }
.pgw-btn--primary:hover { background: #0d6860 !important; }

/* ==========================================================================
   Dashboard App Shell
   ========================================================================== */

.pgw-app {
	background: var(--pgw-gray-50) !important;
	min-height: 100vh !important;
	min-height: 100dvh !important;
	padding-bottom: 0 !important;
}

/* Loading */
.pgw-loading {
	display: flex !important; flex-direction: column !important; align-items: center !important;
	justify-content: center !important; min-height: 60vh !important; gap: 1rem !important;
	color: var(--pgw-gray-400) !important;
}
.pgw-loading p { color: var(--pgw-gray-400) !important; font-size: .9rem !important; }
.pgw-spinner {
	width: 32px !important; height: 32px !important;
	border: 3px solid var(--pgw-gray-200) !important;
	border-top-color: var(--pgw-primary) !important;
	border-radius: 50% !important;
	animation: pgw-spin .7s linear infinite !important;
}
@keyframes pgw-spin { to { transform: rotate(360deg); } }

/* ==========================================================================
   Header
   ========================================================================== */

.pgw-header {
	background: var(--pgw-dark) !important;
	color: var(--pgw-white) !important;
	padding: 0 1rem !important;
	height: var(--pgw-header-h) !important;
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	position: relative !important;
	z-index: 10 !important;
}
.pgw-header * { color: var(--pgw-white) !important; }
.pgw-header-left { display: flex !important; align-items: center !important; gap: .6rem !important; }
.pgw-header-logo { font-size: 1.05rem !important; font-weight: 700 !important; }
.pgw-header-logo span { color: var(--pgw-primary-light) !important; }
.pgw-header-badge {
	background: rgba(255,255,255,.12) !important; padding: .12rem .45rem !important;
	border-radius: 20px !important; font-size: .62rem !important; font-weight: 500 !important;
	text-transform: uppercase !important; letter-spacing: .04em !important;
}
.pgw-header-right { display: flex !important; align-items: center !important; gap: .6rem !important; }
.pgw-user-name { font-size: .82rem !important; color: var(--pgw-gray-300) !important; }
.pgw-header-right .pgw-btn {
	font-size: .72rem !important; padding: .28rem .5rem !important;
	background: rgba(255,255,255,.1) !important; color: var(--pgw-gray-300) !important;
	border: 1px solid rgba(255,255,255,.12) !important;
}
.pgw-header-right .pgw-btn:hover { background: rgba(255,255,255,.18) !important; color: var(--pgw-white) !important; }

/* ==========================================================================
   Bottom Navigation — mobile only
   ========================================================================== */

.pgw-bottom-nav { display: none !important; }

@media (max-width: 768px) {
	.pgw-bottom-nav {
		display: flex !important;
		position: fixed !important;
		bottom: 0 !important;
		left: 0 !important;
		right: 0 !important;
		height: var(--pgw-bottom-nav-h) !important;
		background: var(--pgw-white) !important;
		border-top: 1px solid var(--pgw-gray-200) !important;
		z-index: 200 !important;
		box-shadow: 0 -2px 10px rgba(0,0,0,.06) !important;
	}
	.pgw-bottom-nav-item {
		flex: 1 !important;
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		justify-content: center !important;
		gap: 2px !important;
		font-size: .62rem !important;
		font-weight: 500 !important;
		color: var(--pgw-gray-400) !important;
		cursor: pointer !important;
		position: relative !important;
	}
	.pgw-bottom-nav-item svg {
		width: 22px !important; height: 22px !important;
		color: inherit !important; stroke: currentColor !important;
	}
	.pgw-bottom-nav-item.active { color: var(--pgw-primary) !important; font-weight: 600 !important; }
	.pgw-bottom-nav-badge {
		position: absolute !important;
		top: 4px !important;
		right: calc(50% - 18px) !important;
		min-width: 16px !important; height: 16px !important;
		background: var(--pgw-red) !important;
		color: var(--pgw-white) !important;
		font-size: .58rem !important; font-weight: 700 !important;
		border-radius: 99px !important;
		display: flex !important; align-items: center !important; justify-content: center !important;
		padding: 0 4px !important;
	}
	.pgw-app { padding-bottom: var(--pgw-bottom-nav-h) !important; }
}

/* Desktop top tabs */
.pgw-nav {
	background: var(--pgw-white) !important;
	border-bottom: 1px solid var(--pgw-gray-200) !important;
	display: flex !important;
	padding: 0 1rem !important;
}
.pgw-nav-item {
	padding: .7rem .85rem !important; font-size: .82rem !important; font-weight: 500 !important;
	color: var(--pgw-gray-500) !important; cursor: pointer !important; white-space: nowrap !important;
	border-bottom: 2px solid transparent !important;
	transition: all .15s !important;
}
.pgw-nav-item:hover { color: var(--pgw-gray-700) !important; }
.pgw-nav-item.active { color: var(--pgw-primary) !important; border-bottom-color: var(--pgw-primary) !important; font-weight: 600 !important; }

@media (max-width: 768px) { .pgw-nav { display: none !important; } }

/* ==========================================================================
   Content
   ========================================================================== */

.pgw-content {
	padding: .85rem !important;
	max-width: 1200px !important;
	margin: 0 auto !important;
}

/* ==========================================================================
   Status Tabs — only active = green, rest = neutral gray outline
   ========================================================================== */

.pgw-status-tabs {
	display: flex !important;
	gap: 6px !important;
	overflow-x: auto !important;
	-webkit-overflow-scrolling: touch !important;
	padding: .65rem .85rem !important;
	background: var(--pgw-white) !important;
	border-bottom: 1px solid var(--pgw-gray-200) !important;
	scrollbar-width: none !important;
}
.pgw-status-tabs::-webkit-scrollbar { display: none; }

.pgw-status-tab {
	display: inline-flex !important;
	align-items: center !important;
	gap: 5px !important;
	padding: .35rem .7rem !important;
	font-size: .76rem !important;
	font-weight: 500 !important;
	color: var(--pgw-gray-600) !important;
	border: 1px solid var(--pgw-gray-250, var(--pgw-gray-200)) !important;
	border-radius: 99px !important;
	cursor: pointer !important;
	white-space: nowrap !important;
	transition: all .15s !important;
	background: var(--pgw-white) !important;
}
.pgw-status-tab:hover {
	background: var(--pgw-gray-50) !important;
	border-color: var(--pgw-gray-300) !important;
}
/* ACTIVE = solid green */
.pgw-status-tab.active {
	background: var(--pgw-primary) !important;
	color: var(--pgw-white) !important;
	border-color: var(--pgw-primary) !important;
}
.pgw-status-tab .pgw-tab-count {
	display: inline-flex !important; align-items: center !important; justify-content: center !important;
	min-width: 18px !important; height: 18px !important;
	font-size: .63rem !important; font-weight: 700 !important;
	background: rgba(0,0,0,.08) !important;
	color: inherit !important;
	border-radius: 99px !important; padding: 0 4px !important;
}
.pgw-status-tab.active .pgw-tab-count {
	background: rgba(255,255,255,.25) !important;
	color: var(--pgw-white) !important;
}

/* ==========================================================================
   Date Pills — only active = teal outline, rest = neutral
   ========================================================================== */

.pgw-date-pills {
	display: flex !important;
	gap: 6px !important;
	overflow-x: auto !important;
	-webkit-overflow-scrolling: touch !important;
	padding: .4rem .85rem .55rem !important;
	scrollbar-width: none !important;
}
.pgw-date-pills::-webkit-scrollbar { display: none; }

.pgw-date-pill {
	display: inline-flex !important; align-items: center !important;
	padding: .28rem .6rem !important; font-size: .72rem !important; font-weight: 500 !important;
	color: var(--pgw-gray-500) !important;
	border: 1px solid var(--pgw-gray-200) !important;
	border-radius: 99px !important; cursor: pointer !important; white-space: nowrap !important;
	transition: all .15s !important; background: var(--pgw-white) !important;
}
.pgw-date-pill:hover { border-color: var(--pgw-gray-300) !important; color: var(--pgw-gray-700) !important; }
.pgw-date-pill.active {
	background: var(--pgw-primary-bg) !important;
	color: var(--pgw-primary) !important;
	border-color: var(--pgw-primary) !important;
	font-weight: 600 !important;
}

/* ==========================================================================
   Search Bar
   ========================================================================== */

.pgw-search-bar {
	display: flex !important;
	gap: .5rem !important;
	padding: 0 .85rem .6rem !important;
	align-items: center !important;
}
.pgw-search-input {
	flex: 1 !important;
	padding: .45rem .7rem .45rem 2rem !important;
	font-size: .82rem !important;
	border: 1px solid var(--pgw-gray-200) !important;
	border-radius: 8px !important;
	background: var(--pgw-white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") no-repeat .6rem center !important;
	color: var(--pgw-gray-900) !important;
	transition: border-color .15s !important;
}
.pgw-search-input:focus { border-color: var(--pgw-primary) !important; box-shadow: 0 0 0 2px rgba(15,118,110,.1) !important; }
.pgw-search-input::placeholder { color: var(--pgw-gray-400) !important; }

.pgw-filter-select {
	padding: .45rem .6rem !important; font-size: .8rem !important;
	border: 1px solid var(--pgw-gray-200) !important; border-radius: 8px !important;
	background: var(--pgw-white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 5l3 3 3-3' fill='none' stroke='%2364748b' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right .5rem center !important;
	color: var(--pgw-gray-700) !important;
	cursor: pointer !important; appearance: none !important; -webkit-appearance: none !important;
	padding-right: 1.8rem !important;
}
.pgw-filter-select:focus { border-color: var(--pgw-primary) !important; }

/* ==========================================================================
   Stat Cards — compact, only accent = left border
   ========================================================================== */

.pgw-stats {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: .45rem !important;
	padding: 0 0 .6rem !important;
}
.pgw-stat-card {
	background: var(--pgw-white) !important;
	border: 1px solid var(--pgw-gray-200) !important;
	border-radius: var(--pgw-radius) !important;
	padding: .65rem .75rem !important;
	cursor: pointer !important;
	transition: all .15s !important;
}
.pgw-stat-card:hover { box-shadow: var(--pgw-shadow) !important; }
.pgw-stat-card:active { transform: scale(.97) !important; }
.pgw-stat-label {
	font-size: .62rem !important; font-weight: 600 !important; text-transform: uppercase !important;
	letter-spacing: .04em !important; color: var(--pgw-gray-500) !important; margin-bottom: .1rem !important;
}
.pgw-stat-value { font-size: 1.4rem !important; font-weight: 700 !important; color: var(--pgw-gray-900) !important; line-height: 1.2 !important; }
.pgw-stat-card--teal { border-left: 3px solid var(--pgw-primary) !important; }
.pgw-stat-card--blue { border-left: 3px solid var(--pgw-blue) !important; }
.pgw-stat-card--amber { border-left: 3px solid var(--pgw-amber) !important; }

/* ==========================================================================
   Booking Table (desktop) / Cards (mobile)
   ========================================================================== */

.pgw-table-wrap {
	background: var(--pgw-white) !important;
	border: 1px solid var(--pgw-gray-200) !important;
	border-radius: var(--pgw-radius) !important;
	overflow: hidden !important;
}
.pgw-table { width: 100% !important; border-collapse: collapse !important; font-size: .82rem !important; }
.pgw-table th {
	text-align: left !important; padding: .6rem .8rem !important; font-size: .66rem !important;
	font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: .05em !important;
	color: var(--pgw-gray-500) !important; background: var(--pgw-gray-50) !important;
	border-bottom: 1px solid var(--pgw-gray-200) !important; white-space: nowrap !important;
}
.pgw-table td {
	padding: .6rem .8rem !important; border-bottom: 1px solid var(--pgw-gray-100) !important;
	color: var(--pgw-gray-700) !important;
}
.pgw-table tr:last-child td { border-bottom: none !important; }
.pgw-table tr:hover td { background: var(--pgw-gray-50) !important; }
.pgw-table tr { cursor: pointer !important; }
.pgw-td-ref { font-weight: 600 !important; color: var(--pgw-primary) !important; font-size: .76rem !important; font-family: 'SF Mono','Menlo','Consolas',monospace !important; }
.pgw-td-product { font-weight: 500 !important; color: var(--pgw-gray-900) !important; max-width: 200px !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; }
.pgw-td-pax { text-align: center !important; }

/* Status badges */
.pgw-badge {
	display: inline-block !important; padding: .16rem .45rem !important; border-radius: 20px !important;
	font-size: .68rem !important; font-weight: 600 !important; text-transform: capitalize !important;
	white-space: nowrap !important;
}
.pgw-badge--confirmed { background: var(--pgw-green-bg) !important; color: #15803d !important; }
.pgw-badge--completed { background: var(--pgw-blue-bg) !important; color: #1d4ed8 !important; }
.pgw-badge--awaiting-approval { background: var(--pgw-amber-bg) !important; color: #b45309 !important; }
.pgw-badge--pending { background: var(--pgw-gray-100) !important; color: var(--pgw-gray-600) !important; }
.pgw-badge--cancelled { background: var(--pgw-red-bg) !important; color: var(--pgw-red) !important; }
.pgw-badge--declined { background: var(--pgw-red-bg) !important; color: var(--pgw-red) !important; }
.pgw-badge--failed { background: var(--pgw-red-bg) !important; color: var(--pgw-red) !important; }

/* Mobile cards */
.pgw-booking-cards { display: none !important; }

@media (max-width: 768px) {
	.pgw-table-wrap { display: none !important; }
	.pgw-booking-cards { display: block !important; }
	.pgw-content { padding: .55rem !important; }
	.pgw-stats { gap: .35rem !important; }
	.pgw-stat-value { font-size: 1.2rem !important; }
	.pgw-stat-label { font-size: .58rem !important; }
	.pgw-stat-card { padding: .55rem .65rem !important; }
}

.pgw-booking-card {
	background: var(--pgw-white) !important;
	border: 1px solid var(--pgw-gray-200) !important;
	border-radius: var(--pgw-radius) !important;
	padding: .8rem !important;
	margin-bottom: .45rem !important;
	cursor: pointer !important;
	transition: all .12s !important;
}
.pgw-booking-card:active { transform: scale(.985) !important; }
.pgw-booking-card-top {
	display: flex !important; justify-content: space-between !important; align-items: center !important;
	margin-bottom: .35rem !important;
}
.pgw-booking-card-ref {
	font-family: 'SF Mono','Menlo','Consolas',monospace !important;
	font-size: .73rem !important; font-weight: 600 !important; color: var(--pgw-primary) !important;
}
.pgw-booking-card-product {
	font-weight: 600 !important; font-size: .86rem !important; color: var(--pgw-gray-900) !important;
	margin-bottom: .3rem !important; display: -webkit-box !important;
	-webkit-line-clamp: 2 !important; -webkit-box-orient: vertical !important; overflow: hidden !important;
}
.pgw-booking-card-grid {
	display: grid !important; grid-template-columns: 1fr 1fr !important; gap: .2rem .4rem !important;
	font-size: .76rem !important; color: var(--pgw-gray-500) !important;
}
.pgw-booking-card-grid strong { color: var(--pgw-gray-700) !important; font-weight: 500 !important; }
.pgw-booking-card-item {
	display: flex !important; align-items: center !important; gap: 4px !important;
}
.pgw-booking-card-item svg {
	width: 13px !important; height: 13px !important; flex-shrink: 0 !important; opacity: .45 !important;
	color: var(--pgw-gray-400) !important; stroke: currentColor !important;
}

/* ==========================================================================
   List info / sort
   ========================================================================== */

.pgw-list-info {
	display: flex !important; align-items: center !important; justify-content: space-between !important;
	padding: .3rem 0 .4rem !important; font-size: .76rem !important; color: var(--pgw-gray-500) !important;
}
.pgw-list-info strong { color: var(--pgw-gray-700) !important; }
.pgw-sort-btn {
	display: inline-flex !important; align-items: center !important; gap: 3px !important;
	color: var(--pgw-gray-500) !important; font-size: .76rem !important;
	cursor: pointer !important; padding: .2rem .4rem !important; border-radius: 4px !important;
}
.pgw-sort-btn:hover { background: var(--pgw-gray-100) !important; color: var(--pgw-gray-700) !important; }
.pgw-sort-btn svg { width: 14px !important; height: 14px !important; color: inherit !important; stroke: currentColor !important; }

/* ==========================================================================
   Detail Modal — bottom sheet on mobile
   ========================================================================== */

.pgw-modal-overlay {
	position: fixed !important; inset: 0 !important;
	background: rgba(15,23,42,.45) !important; z-index: 1000 !important;
	display: flex !important; align-items: flex-start !important; justify-content: center !important;
	padding: 2rem 1rem !important; overflow-y: auto !important; animation: pgw-fade-in .2s ease !important;
}
@keyframes pgw-fade-in { from { opacity: 0; } to { opacity: 1; } }

.pgw-modal {
	background: var(--pgw-white) !important;
	border-radius: 12px !important;
	box-shadow: 0 25px 60px rgba(0,0,0,.15) !important;
	width: 100% !important; max-width: 560px !important;
	animation: pgw-slide-up .25s ease !important;
}
@keyframes pgw-slide-up { from { transform: translateY(16px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }

.pgw-modal-header {
	display: flex !important; align-items: center !important; justify-content: space-between !important;
	padding: 1rem 1.1rem !important; border-bottom: 1px solid var(--pgw-gray-200) !important;
	background: var(--pgw-white) !important;
}
.pgw-modal-header h3 { font-size: 1rem !important; font-weight: 700 !important; color: var(--pgw-gray-900) !important; }
.pgw-modal-close {
	cursor: pointer !important; color: var(--pgw-gray-400) !important;
	padding: .25rem !important; border-radius: 6px !important;
}
.pgw-modal-close:hover { background: var(--pgw-gray-100) !important; color: var(--pgw-gray-700) !important; }
.pgw-modal-close svg { width: 20px !important; height: 20px !important; color: inherit !important; stroke: currentColor !important; }
.pgw-modal-body { padding: 1.1rem !important; }
.pgw-detail-grid { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: .7rem !important; }
.pgw-detail-item { display: flex !important; flex-direction: column !important; }
.pgw-detail-label {
	font-size: .66rem !important; font-weight: 600 !important; text-transform: uppercase !important;
	letter-spacing: .04em !important; color: var(--pgw-gray-400) !important; margin-bottom: .1rem !important;
}
.pgw-detail-value { font-size: .86rem !important; font-weight: 500 !important; color: var(--pgw-gray-800) !important; }
.pgw-detail-divider { border-top: 1px solid var(--pgw-gray-100) !important; margin: .75rem 0 !important; grid-column: 1 / -1 !important; }

.pgw-cat-table { width: 100% !important; font-size: .78rem !important; border-collapse: collapse !important; grid-column: 1 / -1 !important; }
.pgw-cat-table th {
	text-align: left !important; font-size: .64rem !important; font-weight: 700 !important;
	text-transform: uppercase !important; letter-spacing: .04em !important; color: var(--pgw-gray-400) !important;
	padding: .3rem .2rem !important; border-bottom: 1px solid var(--pgw-gray-100) !important;
}
.pgw-cat-table td { padding: .3rem .2rem !important; color: var(--pgw-gray-700) !important; }
.pgw-cat-table .pgw-cat-total { font-weight: 700 !important; color: var(--pgw-gray-900) !important; border-top: 2px solid var(--pgw-gray-200) !important; }

@media (max-width: 768px) {
	.pgw-modal-overlay { padding: 0 !important; align-items: flex-end !important; }
	.pgw-modal {
		border-radius: 16px 16px 0 0 !important; max-height: 88vh !important; max-height: 88dvh !important;
		animation: pgw-sheet-up .3s ease !important; overflow-y: auto !important;
	}
	@keyframes pgw-sheet-up { from { transform: translateY(100%); } to { transform: translateY(0); } }
	.pgw-modal-header { position: sticky !important; top: 0 !important; z-index: 1 !important; }
	.pgw-modal-header::before {
		content: '' !important; display: block !important;
		width: 36px !important; height: 4px !important;
		background: var(--pgw-gray-300) !important; border-radius: 99px !important;
		position: absolute !important; top: 6px !important; left: 50% !important;
		transform: translateX(-50%) !important;
	}
	.pgw-detail-grid { grid-template-columns: 1fr !important; }
	.pgw-user-name { display: none !important; }
}

/* ==========================================================================
   Calendar
   ========================================================================== */

.pgw-calendar-section {
	background: var(--pgw-white) !important;
	border: 1px solid var(--pgw-gray-200) !important;
	border-radius: var(--pgw-radius) !important;
	padding: 1rem !important;
}
.pgw-cal-header { display: flex !important; align-items: center !important; justify-content: space-between !important; margin-bottom: .75rem !important; }
.pgw-cal-title { font-size: .92rem !important; font-weight: 700 !important; color: var(--pgw-gray-900) !important; }
.pgw-cal-nav { display: flex !important; align-items: center !important; gap: .4rem !important; }
.pgw-cal-nav-btn {
	background: var(--pgw-gray-100) !important; border: 1px solid var(--pgw-gray-200) !important;
	border-radius: 6px !important; cursor: pointer !important; padding: .28rem .4rem !important;
	color: var(--pgw-gray-600) !important; display: flex !important; align-items: center !important;
}
.pgw-cal-nav-btn:hover { background: var(--pgw-gray-200) !important; }
.pgw-cal-nav-btn svg { width: 16px !important; height: 16px !important; color: inherit !important; stroke: currentColor !important; }
.pgw-cal-month-label { font-size: .85rem !important; font-weight: 600 !important; color: var(--pgw-gray-700) !important; min-width: 120px !important; text-align: center !important; }

.pgw-cal-grid { display: grid !important; grid-template-columns: repeat(7, 1fr) !important; gap: 2px !important; }
.pgw-cal-weekday {
	text-align: center !important; font-size: .66rem !important; font-weight: 700 !important;
	text-transform: uppercase !important; letter-spacing: .04em !important; color: var(--pgw-gray-400) !important;
	padding: .4rem 0 !important;
}
.pgw-cal-day {
	text-align: center !important; padding: .45rem .2rem !important; font-size: .78rem !important;
	border-radius: 8px !important; cursor: pointer !important; color: var(--pgw-gray-700) !important;
	position: relative !important; transition: all .15s !important;
}
.pgw-cal-day:hover { background: var(--pgw-gray-100) !important; }
.pgw-cal-day--empty { cursor: default !important; }
.pgw-cal-day--empty:hover { background: transparent !important; }
.pgw-cal-day--today { font-weight: 700 !important; color: var(--pgw-primary) !important; box-shadow: inset 0 0 0 2px var(--pgw-primary-light) !important; }
.pgw-cal-day--past { color: var(--pgw-gray-300) !important; cursor: default !important; }
.pgw-cal-day--past:hover { background: transparent !important; }
.pgw-cal-day--blackout { background: var(--pgw-red-bg) !important; color: var(--pgw-red) !important; font-weight: 600 !important; }
.pgw-cal-day--blackout:hover { background: #fde2e2 !important; }
.pgw-cal-day--blackout::after {
	content: '×' !important; position: absolute !important; top: 1px !important; right: 3px !important;
	font-size: .58rem !important; font-weight: 700 !important; color: var(--pgw-red) !important;
}
.pgw-cal-legend { display: flex !important; gap: .75rem !important; margin-top: .65rem !important; font-size: .7rem !important; color: var(--pgw-gray-500) !important; }
.pgw-cal-legend-item { display: flex !important; align-items: center !important; gap: .25rem !important; }
.pgw-cal-legend-dot { width: 10px !important; height: 10px !important; border-radius: 3px !important; }
.pgw-cal-legend-dot--closed { background: var(--pgw-red-bg) !important; border: 1px solid var(--pgw-red) !important; }
.pgw-cal-legend-dot--today { border: 2px solid var(--pgw-primary-light) !important; }
.pgw-cal-info {
	margin-top: .55rem !important; padding: .5rem .7rem !important; background: var(--pgw-blue-bg) !important;
	border-radius: 8px !important; font-size: .73rem !important; color: #1e40af !important;
}
.pgw-cal-product-select { margin-bottom: .65rem !important; }

/* ==========================================================================
   Pagination
   ========================================================================== */

.pgw-pagination {
	display: flex !important; align-items: center !important; justify-content: center !important;
	gap: .4rem !important; margin-top: .65rem !important; padding: .4rem !important;
}
.pgw-pagination-btn {
	padding: .3rem .6rem !important; font-size: .78rem !important;
	border: 1px solid var(--pgw-gray-200) !important; border-radius: 6px !important;
	background: var(--pgw-white) !important; color: var(--pgw-gray-600) !important; cursor: pointer !important;
}
.pgw-pagination-btn:disabled { opacity: .4 !important; cursor: not-allowed !important; }
.pgw-pagination-btn:not(:disabled):hover { background: var(--pgw-gray-100) !important; }
.pgw-pagination-info { font-size: .78rem !important; color: var(--pgw-gray-500) !important; }

/* Empty */
.pgw-empty { text-align: center !important; padding: 2rem 1rem !important; color: var(--pgw-gray-400) !important; }
.pgw-empty-icon { font-size: 2rem !important; margin-bottom: .35rem !important; }
.pgw-empty p { font-size: .85rem !important; color: var(--pgw-gray-400) !important; }

/* Refresh bar */
.pgw-refreshing-bar {
	display: flex !important; align-items: center !important; justify-content: center !important;
	gap: .4rem !important; padding: .35rem !important; background: var(--pgw-primary-bg) !important;
	color: var(--pgw-primary) !important; font-size: .73rem !important; font-weight: 500 !important;
}
.pgw-refreshing-bar .pgw-spinner { width: 14px !important; height: 14px !important; border-width: 2px !important; }

/* ==========================================================================
   Calendar — partial close indicator (orange dot)
   ========================================================================== */

.pgw-cal-day--partial {
	color: var(--pgw-amber) !important;
	font-weight: 600 !important;
	position: relative !important;
}
.pgw-cal-day--partial::after {
	content: '' !important;
	position: absolute !important;
	bottom: 3px !important;
	left: 50% !important;
	transform: translateX(-50%) !important;
	width: 5px !important;
	height: 5px !important;
	background: var(--pgw-amber) !important;
	border-radius: 50% !important;
}
.pgw-cal-day--selected {
	box-shadow: inset 0 0 0 2px var(--pgw-primary) !important;
	font-weight: 700 !important;
}

.pgw-cal-legend-dot--partial {
	background: var(--pgw-amber-bg) !important;
	border: 1px solid var(--pgw-amber) !important;
}

/* ==========================================================================
   Session Panel — slides in below calendar
   ========================================================================== */

.pgw-session-panel {
	background: var(--pgw-white) !important;
	border: 1px solid var(--pgw-gray-200) !important;
	border-radius: var(--pgw-radius) !important;
	margin-top: .65rem !important;
	overflow: hidden !important;
	animation: pgw-fade-in .2s ease !important;
}
.pgw-session-panel__header {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	padding: .75rem 1rem !important;
	background: var(--pgw-gray-50) !important;
	border-bottom: 1px solid var(--pgw-gray-200) !important;
}
.pgw-session-panel__date {
	font-weight: 700 !important;
	font-size: .9rem !important;
	color: var(--pgw-gray-900) !important;
}
.pgw-session-panel__count {
	font-size: .72rem !important;
	color: var(--pgw-gray-500) !important;
	margin-left: .5rem !important;
	font-weight: 500 !important;
}
.pgw-session-panel__close {
	font-size: 1rem !important;
	color: var(--pgw-gray-400) !important;
	cursor: pointer !important;
	padding: .2rem .4rem !important;
	border-radius: 4px !important;
	line-height: 1 !important;
}
.pgw-session-panel__close:hover {
	background: var(--pgw-gray-100) !important;
	color: var(--pgw-gray-700) !important;
}
.pgw-session-panel__loading {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: .5rem !important;
	padding: 1.5rem !important;
	color: var(--pgw-gray-400) !important;
	font-size: .82rem !important;
}
.pgw-session-panel__empty {
	padding: 1.5rem !important;
	text-align: center !important;
	color: var(--pgw-gray-400) !important;
	font-size: .82rem !important;
}

/* Full-day toggle row */
.pgw-session-panel__fullday {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	padding: .65rem 1rem !important;
	border-bottom: 1px solid var(--pgw-gray-200) !important;
	font-size: .82rem !important;
	font-weight: 600 !important;
	color: var(--pgw-gray-700) !important;
}

/* Individual session slot rows */
.pgw-session-panel__slots {
	padding: .25rem 0 !important;
}
.pgw-session-slot {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	padding: .55rem 1rem !important;
	border-bottom: 1px solid var(--pgw-gray-100) !important;
	transition: background .12s !important;
}
.pgw-session-slot:last-child {
	border-bottom: none !important;
}
.pgw-session-slot--closed {
	background: var(--pgw-red-bg) !important;
}
.pgw-session-slot__info {
	display: flex !important;
	align-items: center !important;
	gap: .5rem !important;
}
.pgw-session-slot__time {
	font-size: .88rem !important;
	font-weight: 600 !important;
	color: var(--pgw-gray-800) !important;
}
.pgw-session-slot--closed .pgw-session-slot__time {
	color: var(--pgw-red) !important;
}
.pgw-session-slot__status {
	font-size: .68rem !important;
	font-weight: 500 !important;
	color: var(--pgw-green) !important;
	text-transform: uppercase !important;
	letter-spacing: .04em !important;
}
.pgw-session-slot--closed .pgw-session-slot__status {
	color: var(--pgw-red) !important;
}

/* iOS-style toggle switch */
.pgw-session-slot__toggle {
	position: relative !important;
	width: 44px !important;
	height: 24px !important;
	background: var(--pgw-primary) !important;
	border-radius: 99px !important;
	cursor: pointer !important;
	transition: background .2s !important;
	flex-shrink: 0 !important;
	padding: 0 !important;
}
.pgw-session-slot__toggle--off {
	background: var(--pgw-gray-300) !important;
}
.pgw-session-slot__toggle:disabled {
	opacity: .4 !important;
	cursor: not-allowed !important;
}
.pgw-session-slot__toggle-knob {
	position: absolute !important;
	top: 2px !important;
	left: 2px !important;
	width: 20px !important;
	height: 20px !important;
	background: var(--pgw-white) !important;
	border-radius: 50% !important;
	transition: transform .2s !important;
	box-shadow: 0 1px 3px rgba(0,0,0,.2) !important;
}
.pgw-session-slot__toggle:not(.pgw-session-slot__toggle--off) .pgw-session-slot__toggle-knob {
	transform: translateX(20px) !important;
}
