/**
 * Zufuk'x Client Dashboard Styles
 * Extends staff-dashboard.css layout — only client-specific overrides here.
 */

/* ── Full-width page override ─────────────────────────────────────────────── */
body.zfx-client-page {
	overflow-x: hidden;
	background-color: var(--zfx-bg-main) !important;
}

/* Neutralize common WP theme containers (mirrors staff-dashboard.css pattern) */
body.zfx-client-page .site-content,
body.zfx-client-page #content,
body.zfx-client-page .content-area,
body.zfx-client-page .wp-site-blocks,
body.zfx-client-page main.site-main,
body.zfx-client-page main#main,
body.zfx-client-page .container,
body.zfx-client-page .container-fluid,
body.zfx-client-page .wp-block-group__inner-container {
	padding: 0 !important;
	max-width: none !important;
	width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

body.zfx-client-page article,
body.zfx-client-page .entry-content,
body.zfx-client-page .wp-block-post-content,
body.zfx-client-page .page-content,
body.zfx-client-page .post-content {
	padding: 0 !important;
	max-width: none !important;
	margin: 0 !important;
	width: 100% !important;
}

/* Hide theme chrome */
body.zfx-client-page header.site-header,
body.zfx-client-page footer.site-footer,
body.zfx-client-page .site-branding,
body.zfx-client-page nav.site-navigation,
body.zfx-client-page .wp-block-template-part[class*="header"],
body.zfx-client-page .wp-block-template-part[class*="footer"] {
	display: none !important;
}

/* ── Root container ───────────────────────────────────────────────────────── */
.zfx-client-dashboard {
	width: 100%;
	max-width: none;
	min-height: 100vh;
	background-color: var(--zfx-bg-main);
}

/* ── Stats grid ───────────────────────────────────────────────────────────── */
.zfx-stats-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: var(--zfx-spacing-lg, 1.25rem);
	margin-bottom: var(--zfx-spacing-lg, 1.25rem);
}

.zfx-stat-card {
	background: var(--zfx-white, #fff);
	border-radius: var(--zfx-border-radius-lg, 8px);
	padding: var(--zfx-spacing-lg, 1.25rem);
	display: flex;
	align-items: center;
	gap: var(--zfx-spacing-md, 1rem);
	box-shadow: var(--zfx-shadow-sm, 0 1px 3px rgba(0,0,0,.08));
}

.zfx-stat-icon {
	font-size: 2rem;
	color: var(--zfx-turquoise, #00bcd4);
	flex-shrink: 0;
}

.zfx-stat-value {
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--zfx-text-primary, #1a1a1a);
	line-height: 1;
}

.zfx-stat-label {
	font-size: .8rem;
	color: var(--zfx-text-secondary, #888);
	margin-top: 2px;
}

/* ── Appointment cards (dashboard upcoming list) ─────────────────────────── */
.zfx-apt-card {
	display: flex;
	align-items: center;
	gap: var(--zfx-spacing-md, 1rem);
	padding: var(--zfx-spacing-md, 1rem) 0;
	border-bottom: 1px solid var(--zfx-border-color, #eee);
}

.zfx-apt-card:last-child {
	border-bottom: none;
}

.zfx-apt-date {
	font-weight: 600;
	min-width: 90px;
	color: var(--zfx-text-primary, #1a1a1a);
}

.zfx-apt-info {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

/* ── Formula cards ────────────────────────────────────────────────────────── */
.zfx-formula-card {
	background: var(--zfx-white, #fff);
	border: 1px solid var(--zfx-border-color, #eee);
	border-radius: var(--zfx-border-radius-lg, 8px);
	padding: var(--zfx-spacing-md, 1rem) var(--zfx-spacing-lg, 1.25rem);
	margin-bottom: var(--zfx-spacing-md, 1rem);
}

.zfx-formula-header {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin-bottom: var(--zfx-spacing-sm, .5rem);
}

.zfx-formula-result {
	margin-bottom: var(--zfx-spacing-sm, .5rem);
	color: var(--zfx-text-primary, #1a1a1a);
}

.zfx-formula-details {
	margin: 0 0 var(--zfx-spacing-sm, .5rem) var(--zfx-spacing-md, 1rem);
	padding: 0;
	list-style: disc;
	color: var(--zfx-text-primary, #1a1a1a);
}

.zfx-formula-notes {
	font-size: .875rem;
	margin-top: var(--zfx-spacing-sm, .5rem);
}

/* ── Filter tabs ──────────────────────────────────────────────────────────── */
.zfx-filter-tabs {
	display: flex;
	gap: var(--zfx-spacing-sm, .5rem);
	flex-wrap: wrap;
	margin-bottom: var(--zfx-spacing-md, 1rem);
}

.zfx-filter-tab {
	padding: .4rem .9rem;
	border-radius: var(--zfx-border-radius-full, 999px);
	border: 1px solid var(--zfx-border-color, #ddd);
	background: transparent;
	cursor: pointer;
	font-size: .875rem;
	color: var(--zfx-text-secondary, #888);
	transition: background .15s, color .15s;
}

.zfx-filter-tab:hover,
.zfx-filter-tab.active {
	background: var(--zfx-turquoise, #00bcd4);
	border-color: var(--zfx-turquoise, #00bcd4);
	color: #fff;
}

/* ── Quick actions ───────────────────────────────────────────────────────── */
.zfx-quick-actions {
	display: flex;
	gap: var(--zfx-spacing-md, 1rem);
	flex-wrap: wrap;
}

/* ── Form helpers ─────────────────────────────────────────────────────────── */
.zfx-form-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: var(--zfx-spacing-md, 1rem);
	margin-bottom: var(--zfx-spacing-md, 1rem);
}

.zfx-form-actions {
	display: flex;
	gap: var(--zfx-spacing-sm, .5rem);
	margin-top: var(--zfx-spacing-md, 1rem);
}

.zfx-checkbox-label {
	display: flex;
	align-items: center;
	gap: var(--zfx-spacing-sm, .5rem);
	margin-bottom: var(--zfx-spacing-sm, .5rem);
	cursor: pointer;
	font-size: .9rem;
}

/* ── Pagination ───────────────────────────────────────────────────────────── */
.zfx-pagination {
	display: flex;
	align-items: center;
	gap: var(--zfx-spacing-sm, .5rem);
	margin-top: var(--zfx-spacing-md, 1rem);
}

.zfx-pag-info {
	font-size: .875rem;
	color: var(--zfx-text-secondary, #888);
}

/* ── Misc helpers ─────────────────────────────────────────────────────────── */
.zfx-loading-text {
	color: var(--zfx-text-secondary, #888);
	font-style: italic;
	padding: var(--zfx-spacing-lg, 1.25rem) 0;
}

.zfx-text-muted {
	color: var(--zfx-text-secondary, #888);
}

.zfx-badge {
	display: inline-block;
	padding: .2em .6em;
	border-radius: var(--zfx-border-radius-full, 999px);
	font-size: .75rem;
	font-weight: 600;
	text-transform: capitalize;
}

.zfx-badge-scheduled,
.zfx-badge-confirmed {
	background: #e3f6fc;
	color: #0277bd;
}

.zfx-badge-completed {
	background: #e8f5e9;
	color: #2e7d32;
}

.zfx-badge-cancelled {
	background: #fce4ec;
	color: #c62828;
}

/* ── Toasts ───────────────────────────────────────────────────────────────── */
.zfx-toast {
	position: fixed;
	bottom: 1.5rem;
	right: 1.5rem;
	padding: .75rem 1.25rem;
	border-radius: var(--zfx-border-radius-lg, 8px);
	background: #323232;
	color: #fff;
	font-size: .9rem;
	opacity: 0;
	transform: translateY(12px);
	transition: opacity .25s, transform .25s;
	z-index: 9999;
	max-width: 320px;
}

.zfx-toast.show {
	opacity: 1;
	transform: translateY(0);
}

.zfx-toast-success { background: #2e7d32; }
.zfx-toast-error   { background: #c62828; }

/* ── Responsive ───────────────────────────────────────────────────────────── */

/* --- Desktop large (>= 1400px) --- */
@media (min-width: 1400px) {
	.zfx-stats-grid {
		grid-template-columns: repeat(4, 1fr);
	}
}

/* --- Tablet (768px – 1023px) --- */
@media (min-width: 768px) and (max-width: 1023px) {
	.zfx-stats-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: var(--zfx-spacing-md, 1rem);
	}

	.zfx-quick-actions {
		flex-wrap: wrap;
		gap: var(--zfx-spacing-sm, .5rem);
	}

	.zfx-formula-card {
		padding: var(--zfx-spacing-sm, .5rem) var(--zfx-spacing-md, 1rem);
	}

	/* On tablet the sidebar is icon-only (inherited from staff-dashboard.css).
	   Stat cards and content fill the remaining width correctly. */
	.zfx-stat-card {
		flex-direction: column;
		text-align: center;
		gap: var(--zfx-spacing-sm, .5rem);
	}

	.zfx-stat-icon {
		align-self: center;
	}
}

/* --- Mobile (< 768px) --- */
@media (max-width: 767px) {
	.zfx-stats-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: var(--zfx-spacing-sm, .5rem);
	}

	.zfx-stat-card {
		flex-direction: column;
		text-align: center;
		padding: var(--zfx-spacing-md, 1rem) var(--zfx-spacing-sm, .5rem);
		gap: var(--zfx-spacing-xs, .25rem);
	}

	.zfx-stat-icon {
		font-size: 1.5rem;
		align-self: center;
	}

	.zfx-stat-value {
		font-size: 1.25rem;
	}

	.zfx-quick-actions {
		flex-direction: column;
	}

	.zfx-quick-actions .zfx-btn {
		width: 100%;
		justify-content: center;
	}

	.zfx-formula-header {
		flex-direction: column;
		gap: var(--zfx-spacing-xs, .25rem);
	}

	.zfx-apt-card {
		flex-wrap: wrap;
	}

	.zfx-apt-date {
		min-width: auto;
		width: 100%;
	}

	.zfx-filter-tabs {
		overflow-x: auto;
		flex-wrap: nowrap;
		padding-bottom: 4px;
		-ms-overflow-style: none;
		scrollbar-width: none;
	}

	.zfx-filter-tabs::-webkit-scrollbar { display: none; }

	.zfx-pagination {
		flex-wrap: wrap;
		justify-content: center;
	}

	/* Toast positioned above bottom nav on mobile */
	.zfx-toast {
		bottom: 1rem;
		right: 1rem;
		left: 1rem;
		max-width: none;
	}
}

/* --- Small mobile (< 400px) --- */
@media (max-width: 399px) {
	.zfx-stats-grid {
		grid-template-columns: 1fr;
	}

	.zfx-stat-card {
		flex-direction: row;
		text-align: left;
	}
}
