:root {
	--ep-bg: #eef3fb;
	--ep-card: #ffffff;
	--ep-text: #152037;
	--ep-muted: #71809f;
	--ep-border: #dfe6f2;
	--ep-primary: #0A4669;
	--ep-primary-dark: #0A4669;
	--ep-sidebar: #111a2f;
	--ep-sidebar-soft: #273149;
	--ep-green: #13a773;
	--ep-red: #f15f6b;
	--ep-orange: #f69a2f;
	--ep-purple: #0A4669;
	--ep-radius: 18px;
	--ep-shadow: 0 14px 38px rgba(30, 45, 80, 0.07);
}

body.ep-dashboard-page {
	overflow-x: hidden;
}

body.ep-dashboard-page .entry-title,
body.ep-dashboard-page .page-title,
body.ep-dashboard-page .wp-block-post-title {
	display: none !important;
}

body.ep-dashboard-page header.site-header,
body.ep-dashboard-page footer.site-footer,
body.ep-dashboard-page .wp-site-blocks > header,
body.ep-dashboard-page .wp-site-blocks > footer,
body.ep-dashboard-page header.wp-block-template-part,
body.ep-dashboard-page footer.wp-block-template-part {
	display: none !important;
}

body.ep-dashboard-page main,
body.ep-dashboard-page .site-main,
body.ep-dashboard-page .entry-content,
body.ep-dashboard-page .wp-block-post-content,
body.ep-dashboard-page .elementor,
body.ep-dashboard-page .elementor-section-wrap,
body.ep-dashboard-page .elementor-widget-shortcode,
body.ep-dashboard-page .elementor-widget-container {
	width: 100% !important;
	max-width: none !important;
}

body.ep-dashboard-page .entry-content > *,
body.ep-dashboard-page .wp-block-post-content > * {
	max-width: none !important;
}

.ep-app-wrap,
.ep-app-wrap *,
.ep-app-wrap *::before,
.ep-app-wrap *::after {
	box-sizing: border-box;
}

.ep-app-wrap {
	width: calc(100vw - 24px) !important;
	max-width: 1480px !important;
	margin-top: 22px;
	margin-bottom: 22px;
	margin-left: calc(50% - 50vw + 12px) !important;
	margin-right: calc(50% - 50vw + 12px) !important;
	font-family: inherit;
	color: var(--ep-text);
}

@media (min-width: 1505px) {
	.ep-app-wrap {
		margin-left: auto !important;
		margin-right: auto !important;
	}
}

.ep-app {
	display: grid;
	grid-template-columns: 235px minmax(0, 1fr);
	min-height: 850px;
	overflow: hidden;
	border: 1px solid rgba(16, 24, 40, 0.08);
	border-radius: 24px;
	background: var(--ep-bg);
	box-shadow: 0 20px 60px rgba(16, 24, 40, 0.12);
}

.ep-app-sidebar {
	display: flex;
	flex-direction: column;
	padding: 26px 16px 18px;
	background: var(--ep-sidebar);
	color: #fff;
}

.ep-brand {
	display: flex;
	align-items: center;
	gap: 11px;
	padding: 0 10px 34px;
	font-size: 20px;
}

.ep-brand-icon {
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border-radius: 11px;
	background: linear-gradient(135deg, #7287ff, #4258e9);
	box-shadow: 0 8px 20px rgba(10, 70, 105, 0.35);
}

.ep-brand-icon svg,
.ep-sidebar-nav svg,
.ep-sidebar-logout svg,
.ep-kpi-icon svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.8;
}

.ep-sidebar-label {
	padding: 0 10px 10px;
	color: #8190af;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.ep-sidebar-nav {
	display: grid;
	gap: 7px;
}

.ep-sidebar-nav a,
.ep-sidebar-logout {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 44px;
	padding: 0 13px;
	border-left: 3px solid transparent;
	border-radius: 11px;
	color: #aeb9d2 !important;
	font-size: 15px;
	font-weight: 700;
	text-decoration: none !important;
	transition: .18s ease;
}

.ep-sidebar-nav a:hover,
.ep-sidebar-nav a.is-active,
.ep-sidebar-logout:hover {
	background: var(--ep-sidebar-soft);
	color: #fff !important;
}

.ep-sidebar-nav a.is-active {
	border-left-color: #6980ff;
}

.ep-sidebar-nav a > span,
.ep-sidebar-logout > span {
	display: grid;
	place-items: center;
}

.ep-sidebar-health {
	margin-top: auto;
	padding: 17px;
	border: 1px solid #35415b;
	border-radius: 15px;
	background: rgba(255, 255, 255, 0.035);
}

.ep-sidebar-health strong {
	font-size: 14px;
}

.ep-sidebar-health p {
	margin: 8px 0 14px;
	color: #96a3bf;
	font-size: 12px;
	line-height: 1.5;
}

.ep-sidebar-health a {
	display: grid;
	place-items: center;
	min-height: 38px;
	border-radius: 9px;
	background: var(--ep-primary);
	color: #fff !important;
	font-weight: 800;
	text-decoration: none !important;
}

.ep-sidebar-logout {
	margin-top: 12px;
}

.ep-app-main {
	min-width: 0;
	padding: 30px;
	background:
		radial-gradient(circle at 88% -8%, rgba(100, 124, 255, .12), transparent 28%),
		var(--ep-bg);
}

.ep-app-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 22px;
	margin-bottom: 22px;
}

.ep-app-header h1 {
	margin: 0 0 5px;
	color: var(--ep-text);
	font-size: clamp(29px, 4vw, 40px);
	line-height: 1.05;
}

.ep-app-header p {
	margin: 0;
	color: var(--ep-muted);
	font-size: 14px;
}

.ep-mobile-brand {
	display: none;
	margin-bottom: 6px;
	color: var(--ep-primary);
	font-size: 13px;
	font-weight: 850;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.ep-header-actions {
	display: flex;
	align-items: center;
	gap: 10px;
}

.ep-button,
.ep-export-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 43px;
	padding: 10px 16px;
	border: 1px solid transparent;
	border-radius: 11px;
	font-size: 14px;
	font-weight: 800;
	line-height: 1;
	text-decoration: none !important;
	transition: .16s ease;
}

.ep-button {
	background: var(--ep-primary);
	color: #fff !important;
	box-shadow: 0 8px 20px rgba(10, 70, 105, .22);
}

.ep-button {
	cursor: pointer;
	font-family: inherit;
}

.ep-button:hover {
	background: var(--ep-primary-dark);
	transform: translateY(-1px);
}

.ep-export-button {
	border-color: var(--ep-border);
	background: #fff;
	color: var(--ep-text) !important;
}

.ep-export-button:hover {
	border-color: #c9d3e6;
	transform: translateY(-1px);
}

.ep-month-tabs {
	display: grid;
	grid-template-columns: repeat(12, minmax(42px, 1fr));
	gap: 5px;
	margin-bottom: 20px;
	padding: 7px;
	overflow-x: auto;
	border: 1px solid var(--ep-border);
	border-radius: 15px;
	background: rgba(255, 255, 255, 0.82);
	box-shadow: 0 8px 24px rgba(30, 45, 80, .035);
}

.ep-month-tabs a {
	display: grid;
	place-items: center;
	min-height: 42px;
	border-radius: 10px;
	color: #6f7e9c !important;
	font-size: 14px;
	font-weight: 800;
	text-decoration: none !important;
}

.ep-month-tabs a:hover,
.ep-month-tabs a.is-active {
	background: var(--ep-primary);
	color: #fff !important;
	box-shadow: 0 7px 15px rgba(10, 70, 105, .24);
}

.ep-inline-empty {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	margin-bottom: 16px;
	padding: 12px 15px;
	border: 1px solid #fedf89;
	border-radius: 11px;
	background: #fffaeb;
	color: #8b5f00;
	font-size: 13px;
	font-weight: 650;
}

.ep-inline-empty a,
.ep-inline-empty button {
	padding: 0;
	border: 0;
	background: transparent;
	color: #6f4d00 !important;
	font: inherit;
	font-weight: 850;
	text-decoration: underline;
	cursor: pointer;
}

.ep-card {
	border: 1px solid var(--ep-border);
	border-radius: var(--ep-radius);
	background: var(--ep-card);
	box-shadow: var(--ep-shadow);
}

.ep-kpi-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 15px;
	margin-bottom: 16px;
}

.ep-kpi-card {
	position: relative;
	overflow: hidden;
	padding: 18px 18px 17px;
}

.ep-kpi-card::after {
	content: "";
	position: absolute;
	right: -27px;
	bottom: -33px;
	width: 83px;
	height: 83px;
	border-radius: 50%;
	background: #eff2ff;
}

.ep-kpi-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 14px;
}

.ep-kpi-icon {
	display: grid;
	place-items: center;
	width: 39px;
	height: 39px;
	border-radius: 10px;
}

.ep-kpi-revenue .ep-kpi-icon {
	background: #eef1ff;
	color: var(--ep-primary);
}

.ep-kpi-expenses .ep-kpi-icon {
	background: #fff0f2;
	color: var(--ep-red);
}

.ep-kpi-profit .ep-kpi-icon {
	background: #eaf8f2;
	color: var(--ep-green);
}

.ep-kpi-margin .ep-kpi-icon {
	background: #fff6e9;
	color: var(--ep-orange);
}

.ep-growth-pill {
	padding: 5px 8px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 850;
}

.ep-growth-positive {
	background: #e9f8f1;
	color: var(--ep-green);
}

.ep-growth-negative {
	background: #fff0f2;
	color: var(--ep-red);
}

.ep-growth-neutral {
	background: #f2f4f7;
	color: #667085;
}

.ep-kpi-label {
	display: block;
	margin-bottom: 6px;
	color: var(--ep-muted);
	font-size: 13px;
	font-weight: 750;
}

.ep-kpi-value {
	display: block;
	position: relative;
	z-index: 1;
	color: var(--ep-text);
	font-size: clamp(24px, 2.8vw, 34px);
	line-height: 1;
}

.ep-kpi-meta {
	display: block;
	position: relative;
	z-index: 1;
	margin-top: 9px;
	color: #97a2ba;
	font-size: 11px;
}

.ep-primary-grid,
.ep-secondary-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.85fr) minmax(310px, .95fr);
	gap: 16px;
	margin-bottom: 16px;
}

.ep-cashflow-card,
.ep-expense-card,
.ep-profit-card,
.ep-recent-card {
	padding: 20px;
}

.ep-panel-heading {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 18px;
	margin-bottom: 14px;
}

.ep-panel-heading h2 {
	margin: 0 0 4px;
	color: var(--ep-text);
	font-size: 17px;
	line-height: 1.2;
}

.ep-panel-heading p {
	margin: 0;
	color: var(--ep-muted);
	font-size: 12px;
}

.ep-panel-heading > strong {
	color: var(--ep-text);
	font-size: 14px;
	white-space: nowrap;
}

.ep-panel-heading > a {
	color: var(--ep-primary) !important;
	font-size: 12px;
	font-weight: 800;
	text-decoration: none !important;
}

.ep-chart-key {
	display: flex;
	gap: 15px;
	color: var(--ep-muted);
	font-size: 11px;
	font-weight: 750;
}

.ep-chart-key span::before {
	content: "";
	display: inline-block;
	width: 7px;
	height: 7px;
	margin-right: 6px;
	border-radius: 50%;
}

.ep-key-revenue::before {
	background: var(--ep-primary);
}

.ep-key-expense::before {
	background: var(--ep-orange);
}

.ep-chart-large {
	position: relative;
	height: 292px;
}

.ep-chart-medium {
	position: relative;
	height: 210px;
}

.ep-donut-layout {
	display: grid;
	grid-template-columns: minmax(150px, 1fr) minmax(115px, .8fr);
	align-items: center;
	gap: 16px;
	min-height: 292px;
}

.ep-chart-donut {
	position: relative;
	height: 190px;
}

.ep-expense-legend {
	display: grid;
	gap: 14px;
}

.ep-expense-legend > div {
	display: grid;
	grid-template-columns: 9px 1fr auto;
	align-items: center;
	gap: 8px;
	color: var(--ep-muted);
	font-size: 12px;
}

.ep-expense-legend strong {
	color: var(--ep-text);
}

.ep-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
}

.ep-dot-operating {
	background: var(--ep-primary);
}

.ep-dot-other {
	background: var(--ep-purple);
}

.ep-recent-list {
	display: grid;
}

.ep-recent-entry {
	display: grid;
	grid-template-columns: 34px 1fr auto;
	align-items: center;
	gap: 11px;
	padding: 13px 0;
	border-bottom: 1px solid #edf0f5;
}

.ep-recent-entry:last-child {
	border-bottom: 0;
}

.ep-entry-arrow {
	display: grid;
	place-items: center;
	width: 33px;
	height: 33px;
	border-radius: 10px;
	background: #f6f8fc;
	color: var(--ep-text);
	font-size: 16px;
}

.ep-recent-entry > div {
	display: grid;
	gap: 3px;
	min-width: 0;
}

.ep-recent-entry > div strong {
	overflow: hidden;
	font-size: 12px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.ep-recent-entry small {
	color: var(--ep-muted);
	font-size: 10px;
}

.ep-recent-entry > strong {
	font-size: 12px;
	white-space: nowrap;
}

.ep-recent-entry > strong.is-positive {
	color: var(--ep-green);
}

.ep-recent-entry > strong.is-negative {
	color: var(--ep-red);
}

.ep-recent-empty {
	padding: 30px 0;
	color: var(--ep-muted);
	text-align: center;
}
