@import "theme/vars.less";

.app_sidebar {
	position: relative;
	display: flex;
	flex-direction: column;

	left: 0;
	top: 0;

	z-index: 1000;
	overflow: hidden;

	width: @app_sidebar_width;
	min-width: @app_sidebar_width;

	height: 100dvh;

	padding: 10px 0;

	transition: all 150ms ease-in-out;

	background-color: var(--sidebar-background-color);

	border-radius: 0 @app_sidebar_borderRadius @app_sidebar_borderRadius 0;
	border: 1px solid var(--sidebar-background-color);

	&.floating {
		position: absolute;
		box-shadow: 0 0 5px 4px rgba(0, 0, 0, 0.1) !important;
	}

	&.expanded {
		width: @app_sidebar_width_expanded;

		.app_sidebar_menu_wrapper {
			.ant-menu {
				#sidebar_item_content {
					opacity: 1;
					width: 100%;
				}

				.ant-menu-item:not(.user_avatar) {
					.ant-menu-title-content {
						opacity: 1;
						width: 100%;
					}
				}
			}
		}
	}

	&.customRender {
		display: flex;
		position: relative;

		width: 100%;
		min-width: 34vw;

		padding: 20px;
		max-width: 60vw;

		.app_sidebar_menu_wrapper {
			animation: disappear 150ms ease-out forwards;
		}

		.render_content_wrapper {
			animation: appear 150ms ease-out forwards;
		}
	}

	&.hidden {
		flex: 0 !important;
		min-width: 0 !important;
		background-color: transparent !important;
		width: 0 !important;
	}

	&.elevated {
		box-shadow: 0 0 5px 4px rgba(0, 0, 0, 0.1) !important;
	}

	.app_sidebar_header {
		display: flex;
		flex-direction: column;

		height: 17%;

		padding: 10px 0;

		.app_sidebar_header_logo {
			display: flex;
			align-items: center;
			justify-content: center;

			img {
				user-select: none;
				--webkit-user-select: none;

				width: 80%;
				max-height: 40px;
			}
		}
	}

	.app_sidebar_menu_wrapper {
		height: 65%;
		width: 100%;

		overflow: overlay;
		overflow-x: hidden;

		display: flex;
		flex-direction: column;

		align-items: center;

		transition: all 150ms ease-in-out;

		padding: 5px;

		&.bottom {
			position: absolute;

			bottom: 0;
			left: 0;

			height: fit-content;

			padding-bottom: 30px;
		}

		.ant-menu {
			display: flex;
			flex-direction: column;

			justify-content: center;
			align-items: center;

			width: 100%;

			transition: all 150ms ease-in-out;

			#sidebar_item_content {
				opacity: 0;
				width: 0;
			}

			.ant-menu-item {
				display: inline-flex;

				align-items: center;
				justify-content: center;

				width: 100%;

				padding: 0 0 0 calc(@app_sidebar_width / 2);
				margin: 5px 0;

				transition: all 150ms ease-in-out;

				.ant-menu-item-icon {
					font-size: 1rem;

					margin: 0 !important;
				}

				.ant-menu-title-content {
					text-overflow: clip;
					opacity: 0;
					width: 0;
				}

				&.user_avatar {
					.ant-menu-title-content {
						display: inline-flex;

						align-items: flex-start;
						justify-content: center;
						width: fit-content;

						opacity: 1;
					}

					padding: 0 !important;
				}
			}

			.ant-menu-item-selected {
				background-color: var(--background-color-primary) !important;
			}
		}
	}

	.render_content_wrapper {
		display: flex;
		flex-direction: column;

		opacity: 0;
		transition: all 150ms ease-in-out;

		overflow-y: hidden;

		.render_content_header {
			display: inline-flex;
			flex-direction: row;

			align-items: center;
			justify-content: space-between;

			.render_content_header_title {
				display: inline-flex;
				flex-direction: row;

				align-items: center;

				h1,
				h2,
				h3 {
					font-size: 1.8;
					margin: 0 !important;
				}

				svg {
					font-size: 1.8rem;
				}
			}
		}

		.render_content {
			height: 100%;

			padding: 20px;
			padding-left: 0;

			overflow-x: hidden;
			overflow-y: scroll;
		}
	}
}