:root {
	--libmns-app-bg: #eef2f9;
	--libmns-panel-bg: #0b1220;
	--libmns-panel-surface: #111a2e;
	--libmns-panel-text: #cbd5e1;
	--libmns-brand-grad: linear-gradient(135deg, #1d2065 0%, #f59e0b 100%);
	--libmns-accent: #1d2065;
	--libmns-accent-soft: rgba(29, 32, 101, 0.16);
	--libmns-topbar-bg: #ffffff;
	--libmns-topbar-border: #e2e8f0;
	--libmns-topbar-text: #0f172a;
	--libmns-content-bg: transparent;
	--libmns-btn-bg: #ffffff;
	--libmns-btn-border: #d8e0ee;
	--libmns-btn-text: #334155;
	--libmns-sidebar-w: 264px;
	--libmns-sidebar-w-collapsed: 76px;

	--libmns-sidebar-bg: linear-gradient(180deg, #ffffff 0%, #f5f8fd 100%);
	--libmns-sidebar-border: #e6ebf3;
	--libmns-sidebar-shadow: 14px 0 34px rgba(15, 23, 42, 0.06);
	--libmns-sidebar-divider: #e9eef6;
	--libmns-sidebar-brand-text: #0f172a;
	--libmns-sidebar-link-color: #475569;
	--libmns-sidebar-link-hover-bg: rgba(29, 32, 101, 0.06);
	--libmns-sidebar-link-hover-color: #1d2065;
	--libmns-sidebar-link-hover-border: rgba(29, 32, 101, 0.14);
	--libmns-sidebar-link-active-bg: rgba(29, 32, 101, 0.08);
	--libmns-sidebar-link-active-color: #1d2065;
	--libmns-sidebar-link-active-border: rgba(29, 32, 101, 0.16);
	--libmns-sidebar-icon-bg: rgba(29, 32, 101, 0.07);
	--libmns-sidebar-icon-color: #475569;
	--libmns-sidebar-scrollbar-thumb: rgba(29, 32, 101, 0.22);
	--libmns-sidebar-scrollbar-thumb-hover: rgba(29, 32, 101, 0.38);
	--libmns-logout-color: #dc2626;
	--libmns-logout-border: rgba(220, 38, 38, 0.30);
	--libmns-logout-bg: rgba(220, 38, 38, 0.08);
	--libmns-logout-hover-bg: #dc2626;
	--libmns-logout-hover-color: #ffffff;
	--libmns-logout-hover-border: #dc2626;
}

html.libmns-color-mode-dark {
	--libmns-app-bg: #0b1220;
	--libmns-topbar-bg: #111a2e;
	--libmns-topbar-border: #223049;
	--libmns-topbar-text: #e2e8f0;
	--libmns-content-bg: #0f172a;
	--libmns-btn-bg: rgba(255, 255, 255, 0.06);
	--libmns-btn-border: rgba(148, 163, 184, 0.28);
	--libmns-btn-text: #e2e8f0;

	--libmns-sidebar-bg: linear-gradient(180deg, #111a2e 0%, #0b1220 100%);
	--libmns-sidebar-border: rgba(148, 163, 184, 0.12);
	--libmns-sidebar-shadow: 14px 0 34px rgba(2, 6, 23, 0.22);
	--libmns-sidebar-divider: rgba(148, 163, 184, 0.12);
	--libmns-sidebar-brand-text: #ffffff;
	--libmns-sidebar-link-color: #cbd5e1;
	--libmns-sidebar-link-hover-bg: rgba(255, 255, 255, 0.06);
	--libmns-sidebar-link-hover-color: #ffffff;
	--libmns-sidebar-link-hover-border: rgba(148, 163, 184, 0.14);
	--libmns-sidebar-link-active-bg: var(--libmns-accent-soft);
	--libmns-sidebar-link-active-color: #ffffff;
	--libmns-sidebar-link-active-border: rgba(148, 163, 184, 0.18);
	--libmns-sidebar-icon-bg: rgba(255, 255, 255, 0.06);
	--libmns-sidebar-icon-color: #e2e8f0;
	--libmns-sidebar-scrollbar-thumb: rgba(148, 163, 184, 0.28);
	--libmns-sidebar-scrollbar-thumb-hover: rgba(148, 163, 184, 0.45);
	--libmns-logout-color: #fca5a5;
	--libmns-logout-border: rgba(239, 68, 68, 0.30);
	--libmns-logout-bg: rgba(239, 68, 68, 0.14);
	--libmns-logout-hover-bg: #ef4444;
	--libmns-logout-hover-color: #ffffff;
	--libmns-logout-hover-border: #ef4444;
}

body.libmns-portal-page #wpwrap {
	background: var(--libmns-app-bg);
}

.libmns-admin-page {
	margin: 0;
	max-width: none;
}

.libmns-admin-page * {
	box-sizing: border-box;
}

.libmns-panel {
	display: flex;
	align-items: stretch;
	min-height: 100vh;
	background: var(--libmns-app-bg);
}

/* Sidebar */
.libmns-sidebar {
	position: sticky;
	top: 0;
	z-index: 20;
	display: flex;
	flex: 0 0 var(--libmns-sidebar-w);
	width: var(--libmns-sidebar-w);
	height: 100vh;
	max-height: 100vh;
	flex-direction: column;
	gap: 14px;
	padding: 20px 14px;
	overflow: hidden;
	color: var(--libmns-sidebar-link-color);
	background: var(--libmns-sidebar-bg);
	border-right: 1px solid var(--libmns-sidebar-border);
	box-shadow: var(--libmns-sidebar-shadow);
	transition: flex-basis 0.24s ease, width 0.24s ease, transform 0.24s ease;
}

.libmns-sidebar__brand {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	padding: 6px 8px 14px;
	border-bottom: 1px solid var(--libmns-sidebar-divider);
}

.libmns-sidebar__brand-link {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 12px;
	width: 100%;
	color: var(--libmns-sidebar-brand-text);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.25;
	letter-spacing: 0.01em;
	text-align: left;
	text-decoration: none;
}

.libmns-sidebar__brand-link:hover,
.libmns-sidebar__brand-link:focus {
	color: var(--libmns-sidebar-brand-text);
}

.libmns-sidebar__brand-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 42px;
	height: 42px;
	font-size: 22px;
	color: #ffffff;
	border-radius: 12px;
	background: var(--libmns-brand-grad);
	box-shadow: 0 10px 22px rgba(29, 32, 101, 0.4);
}

.libmns-sidebar__brand-icon.dashicons {
	width: 42px;
	height: 42px;
	line-height: 42px;
}

.libmns-sidebar__brand-text {
	flex: 1;
	min-width: 0;
	white-space: normal;
	overflow-wrap: anywhere;
}

.libmns-sidebar__scroll {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	overflow-x: hidden;
	scrollbar-width: thin;
	scrollbar-color: var(--libmns-sidebar-scrollbar-thumb) transparent;
}

.libmns-sidebar__scroll::-webkit-scrollbar {
	width: 8px;
}

.libmns-sidebar__scroll::-webkit-scrollbar-track {
	background: transparent;
}

.libmns-sidebar__scroll::-webkit-scrollbar-thumb {
	background: var(--libmns-sidebar-scrollbar-thumb);
	border-radius: 999px;
	border: 2px solid transparent;
	background-clip: padding-box;
}

.libmns-sidebar__scroll::-webkit-scrollbar-thumb:hover {
	background: var(--libmns-sidebar-scrollbar-thumb-hover);
	border: 2px solid transparent;
	background-clip: padding-box;
}

.libmns-sidebar__nav {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.libmns-sidebar__link {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 9px 11px;
	border: 1px solid transparent;
	border-radius: 10px;
	color: var(--libmns-sidebar-link-color);
	font-size: 13.5px;
	font-weight: 600;
	text-decoration: none;
	transition: background 0.16s ease, color 0.16s ease, border-color 0.16s ease;
}

.libmns-sidebar__link .dashicons {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 30px;
	height: 30px;
	font-size: 18px;
	color: var(--libmns-sidebar-icon-color);
	border-radius: 8px;
	background: var(--libmns-sidebar-icon-bg);
}

.libmns-sidebar__link:hover {
	background: var(--libmns-sidebar-link-hover-bg);
	border-color: var(--libmns-sidebar-link-hover-border);
	color: var(--libmns-sidebar-link-hover-color);
}

.libmns-sidebar__link.is-active {
	position: relative;
	background: var(--libmns-sidebar-link-active-bg);
	border-color: var(--libmns-sidebar-link-active-border);
	color: var(--libmns-sidebar-link-active-color);
}

.libmns-sidebar__link.is-active .dashicons {
	background: var(--libmns-brand-grad);
	color: #ffffff;
}

.libmns-sidebar__link.is-active::before {
	content: "";
	position: absolute;
	left: -14px;
	top: 50%;
	transform: translateY(-50%);
	width: 4px;
	height: 22px;
	border-radius: 0 4px 4px 0;
	background: var(--libmns-brand-grad);
}

.libmns-sidebar__footer {
	flex-shrink: 0;
	display: flex;
	justify-content: center;
	padding-top: 12px;
	border-top: 1px solid var(--libmns-sidebar-divider);
}

.libmns-sidebar__footer-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	padding: 10px 12px;
	color: var(--libmns-logout-color);
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
	border: 1px solid var(--libmns-logout-border);
	border-radius: 10px;
	background: var(--libmns-logout-bg);
	cursor: pointer;
	transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

.libmns-sidebar__footer-btn:hover {
	background: var(--libmns-logout-hover-bg);
	border-color: var(--libmns-logout-hover-border);
	color: var(--libmns-logout-hover-color);
	transform: translateY(-1px);
}

.libmns-sidebar__footer-btn:hover .dashicons {
	color: var(--libmns-logout-hover-color);
}

.libmns-sidebar__footer-btn .dashicons {
	font-size: 17px;
	width: 17px;
	height: 17px;
}

/* Collapsed sidebar */
html.libmns-sidebar-collapsed .libmns-sidebar {
	flex-basis: var(--libmns-sidebar-w-collapsed);
	width: var(--libmns-sidebar-w-collapsed);
}

html.libmns-sidebar-collapsed .libmns-sidebar__brand-text,
html.libmns-sidebar-collapsed .libmns-sidebar__link-label,
html.libmns-sidebar-collapsed .libmns-sidebar__footer-label {
	display: none;
}

html.libmns-sidebar-collapsed .libmns-sidebar__brand,
html.libmns-sidebar-collapsed .libmns-sidebar__brand-link,
html.libmns-sidebar-collapsed .libmns-sidebar__link,
html.libmns-sidebar-collapsed .libmns-sidebar__footer-btn {
	justify-content: center;
}

html.libmns-sidebar-collapsed .libmns-sidebar__link {
	gap: 0;
}

html.libmns-sidebar-collapsed .libmns-sidebar__link.is-active::before {
	left: -14px;
}

/* Main + Topbar */
.libmns-panel__main {
	display: flex;
	flex: 1 1 auto;
	min-width: 0;
	flex-direction: column;
}

.libmns-topbar {
	position: sticky;
	top: 0;
	z-index: 15;
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 12px 22px;
	background: var(--libmns-topbar-bg);
	border-bottom: 1px solid var(--libmns-topbar-border);
	color: var(--libmns-topbar-text);
}

.libmns-panel-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	color: #ffffff;
	border: 0;
	border-radius: 12px;
	background: var(--libmns-brand-grad);
	box-shadow: 0 10px 22px rgba(29, 32, 101, 0.3);
	cursor: pointer;
}

.libmns-panel-toggle .dashicons {
	font-size: 20px;
	width: 20px;
	height: 20px;
}

.libmns-topbar__title-group {
	min-width: 0;
}

.libmns-topbar__title {
	margin: 0;
	padding: 0;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--libmns-topbar-text);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.libmns-topbar__actions {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-left: auto;
}

.libmns-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 38px;
	padding: 8px 14px;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	border-radius: 10px;
	border: 1px solid var(--libmns-btn-border);
	background: var(--libmns-btn-bg);
	color: var(--libmns-btn-text);
	cursor: pointer;
	transition: background 0.18s ease, border-color 0.18s ease, transform 0.18s ease, color 0.18s ease;
}

.libmns-btn:hover {
	transform: translateY(-1px);
	border-color: var(--libmns-accent);
	color: var(--libmns-accent);
}

html.libmns-color-mode-dark .libmns-btn:hover {
	color: #ffffff;
	border-color: rgba(148, 163, 184, 0.5);
}

.libmns-btn .dashicons {
	font-size: 18px;
	width: 18px;
	height: 18px;
}

.libmns-btn-icon {
	padding: 8px;
	min-width: 38px;
}

.libmns-topbar__badge {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	min-height: 38px;
	padding: 0 8px 0 14px;
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.01em;
	color: #ffffff;
	border-radius: 10px;
	background: var(--libmns-brand-grad);
	box-shadow: 0 8px 18px rgba(29, 32, 101, 0.28);
	white-space: nowrap;
}

.libmns-topbar__badge .dashicons {
	font-size: 15px;
	width: 15px;
	height: 15px;
	color: #ffd464;
}

.libmns-topbar__badge-version {
	display: inline-flex;
	align-items: center;
	padding: 4px 9px;
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: 0.01em;
	color: #ffffff;
	border-radius: 7px;
	background: rgba(255, 255, 255, 0.18);
}

.libmns-theme-toggle {
	min-width: 130px;
}

.libmns-theme-toggle__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 16px;
	font-size: 16px;
	line-height: 1;
}

.libmns-topbar__profile-name {
	max-width: 140px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.libmns-panel__content {
	flex: 1 1 auto;
	min-width: 0;
	padding: 0;
	background: var(--libmns-content-bg);
}

.libmns-panel__content > .owt7-lms {
	max-width: 100%;
}

/* Responsive */
@media (max-width: 900px) {
	.libmns-sidebar {
		position: fixed;
		left: 0;
		top: 0;
		transform: translateX(-100%);
		box-shadow: 24px 0 60px rgba(2, 6, 23, 0.5);
	}

	html.libmns-sidebar-mobile-open .libmns-sidebar {
		transform: translateX(0);
	}

	.libmns-panel {
		display: block;
	}

	.libmns-topbar__title {
		font-size: 16px;
	}

	.libmns-theme-toggle__label,
	.libmns-topbar__profile-name,
	.libmns-topbar__badge {
		display: none;
	}

	.libmns-theme-toggle {
		min-width: 0;
	}
}
