/**
 * Employer Dashboard — Base styles.
 *
 * Tokens, gate (logged-out), shell (sidebar+main wrapper), and base
 * layout primitives shared across every view. Per-section rules live in:
 *
 *   styles/sidebar.css   Sidebar wrapper, nav, CTA, user/company row.
 *   styles/main.css      Main content area, view-panel frame, panel base.
 *   styles/views.css     Per-view rules (jobs, applications, profile form).
 *   styles/widgets.css   Stats cards, company preview, bell, credit banners.
 *
 * Split per the upscale stabilization plan
 * (plan/upscale-stabilization-plan-2026-05-07.md F4 / Task 5.1) — the
 * single 1774-LOC mega-file slowed editor diff review and mixed concerns.
 *
 * @package WP_Career_Board
 * @since   1.2.2
 */

/* -- Design tokens -- */
.wcb-dashboard {
	font-family: inherit;
	font-size: var(--wcb-text-base);
	color: var(--wcb-contrast);
}

/* -- Gate (logged-out) -- */
.wcb-db-gate {
	text-align: center;
	padding: var(--wcb-space-4xl) var(--wcb-space-lg);
}

.wcb-db-gate p {
	color: var(--wcb-text-secondary);
	margin-bottom: var(--wcb-space-lg);
}

/* -- Shell -- sidebar + main -- */
.wcb-dashboard-shell {
	display: flex;
	min-height: 600px;
	align-items: stretch;
}

/* -- Interactivity API show/hide utilities -- */
.wcb-shown  { display: block; }

/* -- Loading skeleton -- */
.wcb-db-loading {
	display: none;
	flex-direction: column;
	gap: var(--wcb-space-md);
}

.wcb-db-loading.wcb-shown {
	display: flex;
}

.wcb-skeleton-row {
	height: 72px;
	background: linear-gradient(90deg, var(--wcb-surface, var(--wp--preset--color--wcb-surface)) 25%, var(--wcb-border) 50%, var(--wcb-surface, var(--wp--preset--color--wcb-surface)) 75%);
	background-size: 200% 100%;
	border-radius: var(--wcb-radius-lg);
	animation: wcb-shimmer 1.4s infinite;
}

@keyframes wcb-shimmer {
	0%   { background-position: 200% 0; }
	100% { background-position: -200% 0; }
}

/* -- Empty and error states -- */
.wcb-db-empty {
	display: none;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--wcb-space-lg);
	padding: 2.5rem;
	background: var(--wcb-bg-subtle);
	border: 1px dashed var(--wcb-text-tertiary);
	border-radius: var(--wcb-radius-lg);
}

.wcb-db-empty.wcb-shown {
	display: flex;
}

.wcb-db-empty-msg {
	color: var(--wcb-text-secondary);
	margin: 0;
	font-size: var(--wcb-text-md);
}

.wcb-db-error {
	display: none;
	color: var(--wcb-danger);
	background: var(--wcb-danger-bg);
	border: 1px solid var(--wcb-danger-border, #fecaca);
	padding: var(--wcb-space-md) var(--wcb-space-lg);
	border-radius: var(--wcb-radius-md);
	font-size: var(--wcb-text-base);
	margin-bottom: var(--wcb-space-lg);
}

.wcb-db-error.wcb-shown {
	display: block;
}

/* Mobile nav toggle -- hidden on desktop */
.wcb-nav-toggle {
	display: none;
}

@media (prefers-reduced-motion: reduce) {
	.wcb-skeleton-row {
		animation: none;
	}
}
