body {
	--nav-width-icon: 60px;
	--nav-width-container: var(--nav-width-icon);
	--nav-width-body: calc( 240px - 24px );
	--nav-width-body-content: calc( var(--nav-width-body) - var(--nav-width-icon) );
}
body.nav-expanded {
	--nav-width-container: 240px;
}
body.nav-expanded nav .nav-section .nav-section-body {
	grid-template-rows: 1fr;
}
body #nav-mobile {
	display: none;
	-webkit-transition: left 0.5s;
	-ms-transition: left 0.5s;
	transition: left 0.5s;
	z-index: 1000;
}
body bar {
	width: 100%;
	height: 12px;
	background-color: var(--color-header);
	position: fixed;
	z-index: 10000;
}
body nav {
	position: fixed;
	top: 0;
	left: 0;
	width: var(--nav-width-container);
	height: 100vh;
	color: var(--color-ui-primary);
	overflow-x: hidden;
	z-index: 1000;
	-webkit-transition: width 0.5s, box-shadow 0.5s;
	-ms-transition: width 0.5s, box-shadow 0.5s;
	transition: width 0.5s, box-shadow 0.5s;
}
body nav::-webkit-scrollbar {
	width: 0px;
	background: transparent;
}
body nav #nav-container {
	position: relative;
	min-height: 100vh;
	padding-bottom: 24px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}
body nav hr {
	margin: 12px;
	margin-bottom: 48px;
}
body nav .nav-section {
	width: var(--nav-width-container);
	padding: 3px 0 0 0;
	display: flex;
	flex-direction: column;
}
body nav .nav-section .nav-section-header {
	width: 100%;
	display: flex;
	align-items: center;
}
body nav .nav-section .nav-section-header.nav-section-header-button-agg .btn:hover i, body nav .nav-section .nav-section-header.nav-section-header-button-agg .btn:focus i {
	background-color: var(--color-ui-primary);
	color: var(--color-content-background);
}
body nav .nav-section .nav-section-header.nav-section-header-button-agg .btn i {
	padding: unset;
	width: 42px;
	height: 42px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	color: unset;
	border-radius: 999px;
}
body nav .nav-section .nav-section-header .btn {
	padding: unset;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: unset;
	color: unset;
	border-radius: unset;
}
body nav .nav-section .nav-section-header .nav-section-header-icon {
	min-width: var(--nav-width-icon);
	text-align: center;
}
body nav .nav-section .nav-section-header .nav-section-header-icon i {
	font-size: 1.5em;
}
body nav .nav-section .nav-section-header .nav-section-header-icon .btn {
	padding: unset;
	width: 42px;
	height: 42px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	color: unset;
	border-radius: 999px;
	background-color: transparent;
	border: unset;
}
body nav .nav-section .nav-section-header .nav-section-header-icon .btn:hover, body nav .nav-section .nav-section-header .nav-section-header-icon .btn:focus {
	background-color: var(--color-ui-primary);
	color: var(--color-content-background);
}
body nav .nav-section .nav-section-header .nav-section-header-label {
	width: var(--nav-width-body-content) !important;
	min-width: var(--nav-width-body-content) !important;
	padding-left: 3px;
	font-family: var(--font-header);
	font-size: 1.1em;
	font-weight: bold;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
body nav .nav-section .nav-section-header .nav-section-header-label .btn {
	justify-content: space-between;
}
body nav .nav-section .nav-section-header .nav-section-header-label .btn[data-bs-toggle=collapse] i {
	margin-left: 12px;
	-webkit-transform: scaleY(-1);
	-ms-transform: scaleY(-1);
	transform: scaleY(-1);
	-webkit-transition: transform 0.5s;
	-ms-transition: transform 0.5s;
	transition: transform 0.5s;
}
body nav .nav-section .nav-section-header .nav-section-header-label .btn[data-bs-toggle=collapse].collapsed i {
	-webkit-transform: scaleY(1);
	-ms-transform: scaleY(1);
	transform: scaleY(1);
}
body nav .nav-section .nav-section-body {
	width: var(--nav-width-body) !important;
	padding-left: calc(var(--nav-width-icon) - 8px);
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows 0.3s ease-out;
}
body nav .nav-section .nav-section-body.nav-section-body-always-expand {
	grid-template-rows: 1fr;
}
body nav .nav-section .nav-section-body .nav-section-body-content {
	overflow: hidden;
	min-height: 0;
}
body nav .nav-section .nav-section-body .nav-section-body-content .nav-section-body-content-text {
	padding-left: 12px;
}
body nav .nav-section .nav-section-body .nav-section-body-content ul.nav-section-linkgroup {
	list-style: unset;
	padding: unset;
}
body nav .nav-section .nav-section-body .nav-section-body-content ul.nav-section-linkgroup li {
	display: flex;
}
body nav .nav-section .nav-section-body .nav-section-body-content ul.nav-section-linkgroup li a {
	width: 100%;
	padding: 3px 12px;
	border-radius: 24px;
	color: var(--color-ui-primary);
	text-decoration: none;
}
body nav .nav-section .nav-section-body .nav-section-body-content ul.nav-section-linkgroup li a:hover, body nav .nav-section .nav-section-body .nav-section-body-content ul.nav-section-linkgroup li a:focus {
	background-color: rgba(67, 74, 84, 0.1);
}
body nav .nav-section .nav-section-body .nav-section-body-content ul.nav-section-linkgroup li.active a {
	background: var(--color-ui-primary);
	color: var(--color-background);
}

@media (max-width: 768px) {
	body {
		--nav-width-container: 0;
	}
	body.nav-expanded nav {
		box-shadow: var(--box-shadow-default);
	}
	body nav {
		background-color: var(--color-background);
	}
	body #nav-mobile {
		position: fixed;
		top: var(--offset-default);
		left: var(--nav-width-container);
		display: block;
	}
	body #nav-mobile button {
		height: 60px;
		background-color: var(--color-header);
		border-radius: 0 var(--radius-m) var(--radius-m) 0;
		color: var(--color-background);
		box-shadow: var(--box-shadow-object);
	}
}