:root{
	--primary:#2c5aa0;
	--primary-light:#3b82f6;
	--primary-dark:#1e3d72;
	--success:#10b981;
	--warning:#f59e0b;
	--danger:#ef4444;
	--bg:#f8faff;
	--card:#fff;
	--border:#e5e7eb;
	--border-light:#f3f4f6;
	--text:#111827;
	--text-light:#6b7280;
	--text-muted:#9ca3af;
	--shadow:0 1px 3px rgba(0,0,0,0.1);
	--shadow-lg:0 4px 12px rgba(0,0,0,0.15);
	--radius:8px;
	--radius-lg:12px;
}

/* Optional dark theme */
:root[data-theme="dark"]{
	--bg:#0b1220;
	--card:#111827;
	--border:#1f2937;
	--border-light:#0f172a;
	--text:#e5e7eb;
	--text-light:#9ca3af;
	--text-muted:#6b7280;
	--shadow:0 1px 3px rgba(0,0,0,0.6);
	--shadow-lg:0 4px 12px rgba(0,0,0,0.55);
}
@media (prefers-color-scheme: dark){
	:root:not([data-theme="light"]) {
		--bg:#0b1220; --card:#111827; --border:#1f2937; --border-light:#0f172a;
		--text:#e5e7eb; --text-light:#9ca3af; --text-muted:#6b7280;
		--shadow:0 1px 3px rgba(0,0,0,0.6); --shadow-lg:0 4px 12px rgba(0,0,0,0.55);
	}
}

*{box-sizing:border-box}
body{
	margin:0;
	background:var(--bg);
	color:var(--text);
	font:16px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
	-webkit-font-smoothing:antialiased;
}
.bds-container{
	width:100%;
	max-width:none;
	margin:0;
	padding:1rem;
}

/* Section header inside pages (not the sticky app header) */
.bds-page-head{ margin: 0 0 1rem 0; }

/* Stats */
.bds-stats-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:1rem }
.bds-stat-card{
	background:var(--card);
	color:var(--text);
	border:1px solid var(--border);
	border-radius:12px;
	padding:16px;
	display:flex; align-items:center; gap:12px;
	box-shadow:var(--shadow);
	transition:transform .2s ease;
}
.bds-stat-card:hover{ transform:translateY(-2px) }
.bds-stat-icon{ font-size:24px; opacity:.85 }
.bds-stat-number{ font-size:28px; font-weight:800; line-height:1 }
.bds-stat-label{ font-size:12px; color:var(--text-light) }
.bds-stat-change{ font-size:12px; padding:2px 6px; border-radius:12px; background:rgba(0,0,0,0.06) }
.bds-stat-change.positive{ color:#16a34a }
.bds-stat-change.negative{ color:#dc2626 }
/* Colorful variants (analytics) */
.bds-stat-card.revenue{ background:linear-gradient(135deg,#11998e 0%,#38ef7d 100%); color:#fff }
.bds-stat-card.bookings{ background:linear-gradient(135deg,#667eea 0%,#764ba2 100%); color:#fff }
.bds-stat-card.customers{ background:linear-gradient(135deg,#f093fb 0%,#f5576c 100%); color:#fff }
.bds-stat-card.avg-booking{ background:linear-gradient(135deg,#4facfe 0%,#00f2fe 100%); color:#fff }
/* Generic variants used elsewhere */
.bds-stat-card--primary{ background:linear-gradient(135deg,var(--primary) 0%, var(--primary-dark) 100%); color:#fff }
.bds-stat-card--success{ background:linear-gradient(135deg,#16a34a 0%, #22c55e 100%); color:#fff }
.bds-stat-card--warning{ background:linear-gradient(135deg,#f59e0b 0%, #fbbf24 100%); color:#fff }
.bds-stat-card--danger{ background:linear-gradient(135deg,#ef4444 0%, #dc2626 100%); color:#fff }
.bds-stat-card--secondary{ background:linear-gradient(135deg,#6b7280 0%, #4b5563 100%); color:#fff }
.bds-stat-card--info{ background:linear-gradient(135deg,#06b6d4 0%, #0ea5e9 100%); color:#fff }

/* Page headings */
.bds-page-title{
	margin:0 0 .25rem 0;
	font-size:1.5rem;
	font-weight:800;
	letter-spacing:.2px;
}
.bds-page-subtitle{
	margin:0 0 1rem 0;
	color:var(--text-light);
	font-size:.95rem;
}

/* App shell layout with left sidebar */
.bds-shell{ display:flex; min-height:100vh; }
.bds-sidebar{ width:240px; flex:0 0 240px; background:linear-gradient(180deg, var(--primary) 0%, var(--primary-dark) 100%); color:#fff; box-shadow:var(--shadow-lg); position:sticky; top:0; height:100vh; display:flex; flex-direction:column; z-index:1200 }
.bds-sidebar__brand{ font-weight:800; font-size:1.25rem; padding:16px; border-bottom:1px solid rgba(255,255,255,0.12) }
.bds-sidenav{ display:flex; flex-direction:column; padding:8px }
.bds-sidenav a{ color:#e5e7eb; text-decoration:none; padding:10px 12px; border-radius:8px; font-weight:600; font-size:14px }
.bds-sidenav a:hover{ background:rgba(255,255,255,0.12); color:#fff }
.bds-sidenav a.is-active{ background:#fff; color:var(--primary); }
.bds-sidenav__footer{ margin-top:auto; padding:12px; display:flex; gap:8px; flex-wrap:wrap }
.bds-content{ flex:1; display:flex; flex-direction:column; min-width:0 }
.bds-topbar{ position:sticky; top:0; z-index:1100; background:var(--card); border-bottom:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; padding:10px 12px }
.bds-menu-btn{ background:transparent; border:1px solid var(--border); border-radius:8px; padding:8px 10px; font-weight:700; cursor:pointer }
.bds-main{ padding:24px 16px }

/* Mobile: collapsible sidebar */
@media (max-width: 900px){
	.bds-sidebar{ position:fixed; left:-260px; transition:left .25s ease; height:100dvh; z-index:1200 }
	.bds-sidebar.is-open{ left:0 }
	.bds-topbar{ position:sticky }
}

.bds-cards{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
	gap:1.5rem;
	margin:2rem 0;
}

.bds-card{
	display:flex;
	flex-direction:column;
	gap:0.75rem;
	background:var(--card);
	padding:1.5rem;
	border:1px solid var(--border);
	border-radius:var(--radius-lg);
	text-decoration:none;
	color:inherit;
	transition:all 0.3s ease;
	box-shadow:var(--shadow);
	position:relative;
	overflow:hidden;
}
.bds-card--tight{ padding:1rem }
.bds-card--tight .bds-card-header{ margin:-.25rem -1rem .25rem; padding:.25rem 1rem .5rem }

.bds-card-header{
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	gap:.75rem;
	margin:-.25rem -1.5rem .5rem;
	padding:.25rem 1.5rem .75rem;
	border-bottom:1px solid var(--border);
}
.bds-card-title{
	margin:0;
	font-size:1.125rem;
	font-weight:700;
	color:var(--text);
}
.bds-card-description{
	margin:.25rem 0 0 0;
	color:var(--text-light);
	font-size:.9rem;
}
.bds-card-content{ margin-top:.25rem; }

.bds-card::before{
	content:'';
	position:absolute;
	top:0;
	left:0;
	right:0;
	height:4px;
	background:linear-gradient(90deg, var(--primary), var(--primary-light));
	transform:scaleX(0);
	transition:transform 0.3s ease;
}

.bds-card:hover{
	transform:translateY(-4px);
	box-shadow:var(--shadow-lg);
	border-color:var(--primary-light);
}
.bds-card:focus-within{ box-shadow:0 0 0 3px rgba(44,90,160,0.08), var(--shadow-lg); border-color: var(--primary-light) }

.bds-card:hover::before{
	transform:scaleX(1);
}

.bds-card strong{
	font-size:2rem;
	color:var(--primary);
	font-weight:700;
	line-height:1;
}

.bds-card span{
	color:var(--text-light);
	font-weight:500;
	font-size:0.875rem;
}
/* Forms */
.bds-form{
	display:grid;
	gap:1rem;
	margin:1.5rem 0;
	max-width:100%;
}
.bds-form-grid{ display:grid; gap:1rem }
@media (min-width: 640px){ .bds-form-grid{ grid-template-columns: 1fr 1fr } }
@media (min-width: 980px){ .bds-form-grid{ grid-template-columns: 1fr 1fr 1fr } }

.bds-form-group{
	display:flex;
	flex-direction:column;
	gap:0.5rem;
}
.bds-form-group:focus-within .bds-label{ color:var(--primary) }

.bds-form label, .bds-label{
	font-weight:600;
	color:var(--text);
	font-size:0.875rem;
}
.bds-help-text{ color:var(--text-light); font-size:.8rem; display:block; margin-top:4px }

.bds-form input, .bds-form textarea, .bds-form select, .bds-input, .bds-textarea{
	width:100%;
	padding:0.75rem;
	border:2px solid var(--border);
	border-radius:var(--radius);
	background:var(--card);
	font-size:0.875rem;
	transition:all 0.2s ease;
	font-family:inherit;
}
/* Normalize number inputs & checkbox accent */
input[type=number]{ appearance: textfield; -moz-appearance:textfield }
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button{ -webkit-appearance: none; margin: 0 }
input[type=checkbox], input[type=radio]{ accent-color: var(--primary); outline:none }
select[multiple]{ min-height: 120px }
.bds-form input::placeholder, .bds-form textarea::placeholder, .bds-input::placeholder, .bds-textarea::placeholder{ color: var(--text-muted) }

.bds-form input:hover, .bds-form textarea:hover, .bds-form select:hover{ border-color:#cbd5e1 }
.bds-form input[required], .bds-form select[required], .bds-input--required{ border-left:3px solid rgba(44,90,160,0.25) }

.bds-form input:focus, .bds-form textarea:focus, .bds-form select:focus, 
.bds-input:focus, .bds-textarea:focus{
	outline:none;
	border-color:var(--primary);
	box-shadow:0 0 0 3px rgba(44,90,160,0.1);
	transform:translateY(-1px);
}

.bds-form-actions{
	display:flex;
	gap:.75rem;
	justify-content:flex-start;
	align-items:center;
	margin-top:.5rem;
}
.bds-form-section-title{ margin:.25rem 0 0; padding-top:.75rem; border-top:1px solid var(--border); font-size:.9rem; color:var(--text-light); font-weight:700 }

/* Tab links (Settings page) */
.bds-tab-link{
	display:inline-flex;
	align-items:center;
	gap:.5rem;
	padding:.75rem 1rem;
	color:var(--text-light);
	text-decoration:none;
	border-bottom:2px solid transparent;
	transition:all .2s ease;
}
.bds-tab-link:hover{ color:var(--primary); background:#f9fafb; }
.bds-tab-link--active{ color:var(--primary); border-bottom-color:var(--primary); background:#f9fafb; }

.bds-grid2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.bds-grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}

/* Analytics */
.bds-analytics-container{ background:var(--card); padding:20px; border-radius:12px; box-shadow:var(--shadow); border:1px solid var(--border); margin-top:16px }
.bds-analytics-controls{ display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-bottom:24px; padding:16px; background:var(--border-light); border-radius:10px }
.bds-date-range{ display:flex; gap:12px; align-items:center }
.bds-date-range label{ font-weight:600; color:var(--text-light) }
.bds-date-range input{ padding:8px 12px; border:1px solid var(--border); border-radius:8px; background:var(--card); color:var(--text) }
.bds-export-controls{ display:flex; gap:10px }
.bds-charts-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:20px; margin-bottom:24px }
.bds-chart-card{ background:var(--card); padding:20px; border-radius:12px; box-shadow:var(--shadow); border:1px solid var(--border) }
.bds-chart-card h3{ margin:0 0 12px 0; color:var(--text); font-weight:700 }
.bds-tables-section{ background:var(--card); border-radius:12px; overflow:hidden; box-shadow:var(--shadow); border:1px solid var(--border) }
.bds-table-tabs{ display:flex; background:var(--border-light); border-bottom:1px solid var(--border) }
.bds-tab-button{ padding:12px 18px; border:none; background:transparent; cursor:pointer; font-weight:600; color:var(--text-light); transition:all .2s ease }
.bds-tab-button.active{ background:var(--card); color:var(--text); border-bottom:2px solid var(--primary) }
.bds-tab-button:hover{ background:#e5e7eb }
.bds-tab-content{ display:none; padding:20px }
.bds-tab-content.active{ display:block }
.wp-list-table th{ background:var(--border-light); font-weight:600; color:var(--text) }
.wp-list-table td{ padding:12px; vertical-align:middle }
.wp-list-table tr:hover{ background:var(--border-light) }

/* Tabs (compat for legacy buttons) */
.bds-tab-btn{ background:transparent; border:none; padding:12px 16px; cursor:pointer; font-size:14px; font-weight:600; color:var(--text-light); border-bottom:2px solid transparent; transition:all .2s }
.bds-tab-btn:hover{ color:var(--primary); background:#f3f4f6 }
.bds-tab-btn.active{ color:var(--primary); border-bottom-color:var(--primary); background:#f9fafb }
.bds-tab-content{ border-radius:0 0 12px 12px }

/* Calendar */
.bds-calendar-wrapper{ background:var(--card); border:1px solid var(--border); border-radius:12px; padding:20px; box-shadow:var(--shadow) }
.bds-calendar-loading{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; color:var(--text-light); padding:20px }
.bds-loading-spinner{ width:28px; height:28px; border:3px solid var(--border); border-top-color:var(--primary); border-radius:50%; animation:bds-spin 1s linear infinite }
@keyframes bds-spin{ to{ transform:rotate(360deg) } }

/* Modal */
.bds-modal{ position:fixed; z-index:2000; inset:0; background:rgba(0,0,0,.5); display:none }
.bds-modal-content{ background:var(--card); margin:5% auto; padding:20px; border-radius:12px; width:90%; max-width:640px; position:relative; border:1px solid var(--border) }
.bds-modal-close{ position:absolute; right:16px; top:12px; font-size:24px; cursor:pointer; color:var(--text-light) }
.bds-modal-close:hover{ color:var(--text) }

/* FullCalendar tweaks */
.fc .fc-button{ background:var(--primary); border-color:var(--primary); }
.fc .fc-button:hover{ background:var(--primary-dark); border-color:var(--primary-dark) }
.fc .fc-toolbar{ margin-bottom:12px }
.fc .fc-event{ cursor:pointer; border-radius:6px; border:none }
.fc .fc-event:hover{ opacity:.9 }
.fc .fc-event-title{ font-weight:600 }

/* Reviews */
.bds-reviews-list{ display:grid; gap:12px }
.bds-review-card{ background:var(--card); border:1px solid var(--border); border-radius:12px; padding:16px; box-shadow:var(--shadow) }
.bds-review-header{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:10px }
.bds-review-meta{ display:flex; gap:10px; flex-wrap:wrap; margin-top:6px; color:var(--text-light); font-size:12px }
.bds-review-rating{ display:flex; align-items:center; gap:4px; margin-top:6px }
.bds-star{ color:#d1d5db; font-size:16px }
.bds-star--filled{ color:#fbbf24 }
.bds-review-date{ color:var(--text-light); font-size:12px; margin-left:8px }
.bds-review-comment{ background:var(--border-light); border-radius:8px; padding:12px; color:var(--text) }
.bds-review-actions{ display:flex; justify-content:flex-end; gap:8px; margin-top:10px }
.bds-checkbox-group{ display:flex; gap:16px; align-items:center; flex-wrap:wrap }


/* Buttons */
.bds-btn{
	background:var(--primary);
	color:white;
	border:0;
	border-radius:var(--radius);
	padding:0.75rem 1.5rem;
	cursor:pointer;
	font-weight:600;
	text-decoration:none;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	text-align:center;
	transition:all 0.2s ease;
	font-size:0.875rem;
	gap:0.5rem;
	box-shadow:var(--shadow);
}

.bds-btn:hover{
	background:var(--primary-dark);
	transform:translateY(-1px);
	box-shadow:var(--shadow-lg);
}

.bds-btn:focus-visible{
	outline:3px solid rgba(44,90,160,0.35);
	outline-offset:2px;
}

.bds-btn-primary{
	background:var(--primary);
	color:white;
}
.bds-btn--primary{ background:var(--primary); color:white; }
.bds-btn--secondary, .bds-btn-secondary{ background:#6b7280; color:#fff; }
.bds-btn--secondary:hover, .bds-btn-secondary:hover{ background:#4b5563; }

.bds-btn-success{
	background:var(--success);
	color:white;
}

.bds-btn-warning{
	background:var(--warning);
	color:white;
}

.bds-btn-danger{
	background:var(--danger);
	color:white;
}

.bds-btn-outline, .bds-btn--outline{
	background:transparent;
	color:var(--primary);
	border:2px solid var(--primary);
}

.bds-btn-outline:hover, .bds-btn--outline:hover{
	background:var(--primary);
	color:white;
}

.bds-btn--link{
	background:transparent;
	color:var(--primary);
	border:1px solid var(--primary);
}

.bds-btn--link:hover{
	background:var(--primary);
	color:white;
}

.bds-btn--danger{
	background:var(--danger);
	color:white;
}

.bds-btn--danger:hover{
	background:#dc2626;
}

.bds-btn--sm, .bds-btn--small{
	padding:.375rem .75rem;
	font-size:.8125rem;
	border-radius:6px;
}
/* Tables */
.bds-table{
	width:100%;
	border-collapse:collapse;
	background:var(--card);
	border:1px solid var(--border);
	border-radius:var(--radius-lg);
	overflow:hidden;
	margin:1.5rem 0;
	box-shadow:var(--shadow);
}

.bds-table th, .bds-table td{
	padding:1rem;
	border-bottom:1px solid var(--border);
	text-align:left;
	vertical-align:top;
}

.bds-table th{
	background:var(--border-light);
	font-weight:600;
	color:var(--text);
	font-size:0.875rem;
	text-transform:uppercase;
	letter-spacing:0.05em;
}

.bds-table tbody tr{
	transition:background-color 0.2s ease;
}

.bds-table tbody tr:hover{
	background:var(--border-light);
}

.bds-table-container{ width:100%; overflow:auto; border-radius:var(--radius-lg); border:1px solid var(--border); background:var(--card); box-shadow:var(--shadow); }

/* Responsive tables: stack rows on small screens */
@media (max-width: 760px){
	.bds-table thead{ display:none !important }
	.bds-table, .bds-table tbody, .bds-table tr, .bds-table td{ display:block; width:100% }
	.bds-table tr{ border-bottom:1px solid var(--border) }
	.bds-table td{
		border:none;
		border-bottom:1px solid var(--border);
		position:relative;
		padding:12px !important;
		min-height:44px;
		word-break:break-word;
	}
	.bds-table td::before{
		content:attr(data-label);
		position:static; /* block above content */
		display:block;
		margin:0 0 6px 0;
		width:auto;
		font-weight:700;
		color:var(--text-light);
		line-height:1.2;
		white-space:normal;
		pointer-events:none;
	}
	/* Avoid large heading margins clashing with label block */
	.bds-table td h1, .bds-table td h2, .bds-table td h3, .bds-table td h4{ margin-top:0 }
}

/* Panels */
.bds-panel{
	background:var(--card);
	border:1px solid var(--border);
	border-radius:var(--radius-lg);
	padding:1.5rem;
	margin:1.5rem 0;
	box-shadow:var(--shadow);
}

.bds-panel > summary{
	cursor:pointer;
	font-weight:600;
	padding:0.5rem 0;
	color:var(--primary);
	transition:color 0.2s ease;
}
.bds-panel>summary:hover{color:#6d28d9}
.bds-panel[open]>summary{margin-bottom:16px;border-bottom:1px solid var(--border);padding-bottom:16px}
.bds-alert{padding:12px 16px;border-radius:8px;margin:16px 0;border:1px solid transparent;font-weight:500}
.bds-alert--success{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}
.bds-alert--danger{background:#fef2f2;border-color:#fecaca;color:#991b1b}
.bds-auth{max-width:420px;margin:40px auto;background:#fff;border:1px solid var(--border);border-radius:12px;padding:32px;box-shadow:0 4px 6px rgba(0,0,0,0.05)}
.bds-auth h1{margin:0 0 24px 0;text-align:center;color:var(--primary)}
.bds-auth p{text-align:center;margin:20px 0 0 0}
.bds-auth a{color:var(--primary);text-decoration:none;font-weight:600}
.bds-auth a:hover{text-decoration:underline}
.bds-footer{margin-top:60px;border-top:1px solid var(--border);background:#fff;padding:20px 0;text-align:center;color:#6b7280}
.bds-tabs{display:block}
.bds-tab-nav{display:flex;gap:2px;flex-wrap:wrap;border-bottom:1px solid var(--border); margin-bottom:12px}
.bds-tab{padding:12px 16px;text-decoration:none;color:#6b7280;border-bottom:2px solid transparent;font-weight:500;transition:all 0.2s}
.bds-tab:hover{color:var(--primary);background:#f9fafb}
.bds-tab.is-active{color:var(--primary);border-bottom-color:var(--primary);background:#f9fafb}
.bds-badge{padding:4px 8px;border-radius:6px;font-size:12px;font-weight:600;text-transform:uppercase}
.bds-badge--success{background:#dcfce7;color:#166534}
.bds-badge--warning{background:#fef3c7;color:#92400e}
.bds-badge--danger{background:#fee2e2;color:#991b1b}
.bds-badge--info{background:#e0f2fe;color:#075985}
.bds-badge--secondary{background:#e5e7eb;color:#374151}

/* Reusable action buttons layout */
.bds-action-buttons{ display:flex; gap:.5rem; flex-wrap:wrap; align-items:center }

/* Status badges used in providers & lists */
.status-badge{ padding:.25rem .5rem; border-radius:9999px; font-size:.75rem; font-weight:600; letter-spacing:.03em; text-transform:uppercase }
.status-badge.active{ background:#dcfce7; color:#166534; }
.status-badge.inactive{ background:#fee2e2; color:#991b1b; }

/* Empty state */
.bds-empty-state{ text-align:center; padding:32px; background:#fff; border:1px solid var(--border); border-radius:12px; color:var(--text-light); box-shadow:var(--shadow) }
.bds-empty-icon{ font-size:40px; margin-bottom:8px; opacity:.7 }

/* Links within app content */
.bds-link{ color:var(--primary); text-decoration:none; font-weight:600 }
.bds-link:hover{ text-decoration:underline }

/* Utility */
@media (prefers-reduced-motion: no-preference){
	.bds-card, .bds-btn, .bds-nav a, .bds-table tbody tr{ transition: all .2s ease }
}
@media (max-width: 768px) {
	.bds-main{ padding:20px 12px }
	.bds-grid2{grid-template-columns:1fr}
	.bds-grid3{grid-template-columns:1fr}
	.bds-cards{grid-template-columns:1fr}
	.bds-table{font-size:14px}
	.bds-table th,.bds-table td{padding:12px 8px}
}

/* Fix misaligned settings form fields on narrow screens */
.bds-form--inline{ display:flex; flex-wrap:wrap; gap:8px; align-items:flex-end }
.bds-form-row{ display:grid; gap:12px; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)) }

/* Analytics controls mobile wrap */
@media (max-width: 640px){
	.bds-analytics-controls{ flex-direction:column; align-items:stretch }
	.bds-date-range{ width:100%; justify-content:space-between }
}

/* Mobile tweaks to stack content vertically on Settings */
@media (max-width: 640px){
	.bds-tab-nav{ gap:6px }
	.bds-tab-link{ flex:1 1 auto }
	.bds-form{ display:block }
	.bds-form-row{ grid-template-columns:1fr }
	.bds-form-actions{ flex-wrap:wrap }
}

/* Booking slot suggestions */
.bds-slotlist{ position:absolute; left:0; right:0; z-index:10; background:var(--card); border:1px solid var(--border); border-radius:8px; padding:8px; margin-top:6px; display:grid; grid-template-columns:repeat(auto-fill, minmax(70px,1fr)); gap:6px; box-shadow:var(--shadow-lg) }
.bds-slotbtn{ display:inline-block; text-align:center; padding:6px 8px; border:1px solid var(--border); border-radius:6px; cursor:pointer; font-size:12px; background:var(--border-light); color:var(--text) }
.bds-slotbtn:hover{ background:#eef2ff; border-color:#c7d2fe }

/* File upload controls */
.bds-file-upload{ display:flex; align-items:center; gap:10px; flex-wrap:wrap }
.bds-file-input{ display:none }
.bds-file-label{ background:var(--primary); color:#fff; padding:8px 16px; border-radius:6px; cursor:pointer; font-size:14px; transition:background .2s }
.bds-file-label:hover{ background:var(--primary-dark) }
.bds-file-info{ color:var(--text-light); font-size:14px }

/* Company preview blocks */
.bds-preview-content{ display:flex; flex-direction:column; gap:12px }
.bds-company-logo{ max-width:160px; height:auto; border-radius:12px; border:1px solid var(--border) }
.bds-company-name{ margin:6px 0 0 0; font-size:1.25rem; font-weight:800 }
.bds-company-description{ color:var(--text-light) }
.bds-company-contact{ display:grid; gap:8px; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); margin-top:4px }
.bds-contact-item{ display:flex; align-items:center; gap:8px; color:var(--text) }
.bds-company-address,.bds-company-hours,.bds-company-social{ margin-top:10px }
.bds-gallery-images{ display:grid; gap:8px; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)) }
.bds-gallery-image{ width:100%; height:100%; max-height:140px; object-fit:cover; border-radius:10px; border:1px solid var(--border) }

/* Toggle switch */
.bds-toggle{ display:inline-flex; align-items:center; gap:8px; cursor:pointer; user-select:none }
.bds-toggle input{ position:absolute; opacity:0; width:0; height:0 }
.bds-toggle .bds-toggle-switch{ position:relative; width:42px; height:24px; background:#cbd5e1; border-radius:9999px; transition:background .2s ease; box-shadow:inset 0 0 0 2px rgba(0,0,0,0.04) }
.bds-toggle .bds-toggle-switch::after{ content:""; position:absolute; top:2px; left:2px; width:20px; height:20px; background:#fff; border-radius:50%; box-shadow:var(--shadow); transition:transform .2s ease }
.bds-toggle input:checked + .bds-toggle-switch{ background:var(--primary) }
.bds-toggle input:checked + .bds-toggle-switch::after{ transform:translateX(18px) }
.bds-toggle:focus-within .bds-toggle-switch{ box-shadow:0 0 0 3px rgba(44,90,160,0.25) }
.bds-toggle .bds-toggle-label{ font-weight:600; color:var(--text) }

/* --- Utilities & helpers for consistent spacing/alignments --- */
.bds-flex{ display:flex }
.bds-justify-between{ justify-content:space-between }
.bds-align-center{ align-items:center }
.bds-gap-8{ gap:8px }
.bds-gap-10{ gap:10px }
.bds-wrap{ flex-wrap:wrap }
.bds-mb-12{ margin-bottom:12px }
.bds-mt-12{ margin-top:12px }
.bds-mt-10{ margin-top:10px }
.bds-mt-6{ margin-top:6px }
.bds-hidden{ display:none !important }
.bds-h-260{ height:260px }
.bds-h-280{ height:280px }
.bds-h-300{ height:300px }
.bds-minw-280{ min-width:280px }

/* Clean list for checklists */
.bds-list-clean{ list-style:none; padding:0; margin:0; display:grid; gap:8px }
.bds-li-row{ display:flex; align-items:center; gap:10px }

/* Progress component */
.bds-progress{ display:flex; align-items:center; gap:10px; margin-bottom:8px }
.bds-progress-track{ flex:1; height:8px; background:var(--border-light); border-radius:9999px; overflow:hidden }
.bds-progress-fill{ height:100%; width:var(--bds-progress, 0%); background:var(--primary) }
.bds-progress-count{ font-weight:700; min-width:56px; text-align:right }

/* Ensure stat cards used as links are unstyled anchors but keep colors */
.bds-stat-card{ text-decoration:none; color:inherit }
