/*
 * Elementor Dashboard Menu Styles
 * Works with body classes added by GCU_Elementor_Dashboard_Menu
 */

/* Base wrapper */
.rpb-dashboard-menu {
	--rpb-disabled-opacity: 0.5;
	--rpb-transition-speed: 0.2s;
	--rpb-badge-bg: rgba(0, 0, 0, 1);
	--rpb-badge-color: #ffffff;
	--rpb-badge-font-size: 11px;
	--rpb-badge-padding-y: 6px;
	--rpb-badge-padding-x: 10px;
}

/* Base menu item behavior */
.rpb-dashboard-menu .rpb-menu-item {
	position: relative;
	transition:
		opacity var(--rpb-transition-speed) ease,
		transform var(--rpb-transition-speed) ease,
		filter var(--rpb-transition-speed) ease;
}

/* Make sure direct links inherit cleanly */
.rpb-dashboard-menu .rpb-menu-item a,
.rpb-dashboard-menu a.rpb-menu-item {
	text-decoration: none;
}

/* Optional subtle hover lift for normal items only */
.rpb-dashboard-menu .rpb-menu-item:hover {
	transform: translateY(-1px);
}

/* Do not lift disabled items */
.rpb-user-logged-out .rpb-dashboard-menu .rpb-requires-login:hover,
.rpb-no-order-id .rpb-dashboard-menu .rpb-needs-order-id:hover {
	transform: none;
}

/* Hide role-restricted items for users without matching roles */
body:not(.rpb-role-shop_manager):not(.rpb-role-administrator) .rpb-role-only-shop-manager {
	display: none !important;
}

body:not(.rpb-role-administrator) .rpb-role-only-admin {
	display: none !important;
}

/* Hide login/register items once logged in */
.rpb-user-logged-in .rpb-menu-login,
.rpb-user-logged-in .rpb-menu-register {
	display: none !important;
}

/* Optional: hide guest-only items for logged-in users */
.rpb-user-logged-in .rpb-guests-only {
	display: none !important;
}

/* Logged-out state for items that require an account */
.rpb-user-logged-out .rpb-dashboard-menu .rpb-requires-login {
	opacity: var(--rpb-disabled-opacity);
}

/* No active order selected */
.rpb-no-order-id .rpb-needs-order-id {
	opacity: var(--rpb-disabled-opacity);
}

/* Apply grayscale only to the visual content, not the status badge */
.rpb-user-logged-out .rpb-dashboard-menu .rpb-requires-login > *:not(.rpb-lock-badge),
.rpb-no-order-id .rpb-dashboard-menu .rpb-needs-order-id > *:not(.rpb-lock-badge) {
	/*filter: grayscale(100%);*/
}

/* If the item is directly an anchor, gray its children instead */
.rpb-user-logged-out .rpb-dashboard-menu a.rpb-requires-login > *:not(.rpb-lock-badge),
.rpb-no-order-id .rpb-dashboard-menu a.rpb-needs-order-id > *:not(.rpb-lock-badge) {
	/*filter: grayscale(100%);*/
}

/* Centered overlay badge */
.rpb-user-logged-out .rpb-requires-login::after,
.rpb-no-order-id .rpb-needs-order-id::after {
	position: absolute;
	/*top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);*/
	bottom: 0%;
	left: 0%;
	display: flex;
	align-items: center;
	justify-content: center;
	/*min-width: 120px;
	max-width: 80%;*/
	width: 100%;
	padding: var(--rpb-badge-padding-y) var(--rpb-badge-padding-x);
	font-size: var(--rpb-badge-font-size);
	line-height: 1.25;
	text-align: center;
	/*border-radius: 999px;*/
	background: var(--rpb-badge-bg);
	color: var(--rpb-badge-color);
	opacity: 1;
	filter: none;
	z-index: 3;
	pointer-events: none;
	box-sizing: border-box;
	white-space: normal;
	word-break: break-word;
}

/* Label for logged-out account-required items */
.rpb-user-logged-out .rpb-requires-login::after {
	content: "Create account or log in";
}

/* Label for order-context-required items when no order is active */
.rpb-no-order-id .rpb-needs-order-id::after {
	content: "Select an order first";
}

/* When both states apply, prioritize account messaging */
.rpb-user-logged-out.rpb-no-order-id .rpb-requires-login.rpb-needs-order-id::after {
	content: "Create account or log in";
}

/* Optional slight dim behind badge for better readability */
.rpb-user-logged-out .rpb-requires-login::before,
.rpb-no-order-id .rpb-needs-order-id::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(255, 255, 255, 0.25);
	z-index: 2;
	pointer-events: none;
	border-radius: inherit;
}

/* When both states apply, keep look consistent */
.rpb-user-logged-out.rpb-no-order-id .rpb-dashboard-menu .rpb-requires-login.rpb-needs-order-id {
	opacity: var(--rpb-disabled-opacity);
}

/* Disable guest clicks on locked items */
.rpb-user-logged-out .rpb-dashboard-menu .rpb-requires-login,
.rpb-user-logged-out .rpb-dashboard-menu .rpb-requires-login a,
.rpb-user-logged-out .rpb-dashboard-menu a.rpb-requires-login {
	pointer-events: none;
	cursor: not-allowed;
}

/* Keep no-order items non-clickable too, if desired */
.rpb-no-order-id .rpb-dashboard-menu .rpb-needs-order-id,
.rpb-no-order-id .rpb-dashboard-menu .rpb-needs-order-id a,
.rpb-no-order-id .rpb-dashboard-menu a.rpb-needs-order-id {
	pointer-events: none;
	cursor: not-allowed;
}

/* Optional footer/sticky menu helpers for future variants */
.rpb-dashboard-menu--footer {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 999;
}

/* Hidden by default for footer variant until context says otherwise */
.rpb-dashboard-menu--footer.rpb-show-for-logged-in,
.rpb-dashboard-menu--footer.rpb-show-for-order-context {
	display: none;
}

.rpb-user-logged-in .rpb-dashboard-menu--footer.rpb-show-for-logged-in {
	display: block;
}

.rpb-order-context .rpb-dashboard-menu--footer.rpb-show-for-order-context {
	display: block;
}

/* If both classes are present, either condition can show it */
.rpb-user-logged-in .rpb-dashboard-menu--footer.rpb-show-for-logged-in.rpb-show-for-order-context,
.rpb-order-context .rpb-dashboard-menu--footer.rpb-show-for-logged-in.rpb-show-for-order-context {
	display: block;
}

/* Optional utility if you want a completely hidden item from Elementor */
.rpb-is-hidden {
	display: none !important;
}