// TODO: Improve the styling of the query aggregation container and its components. - @YounixM , @H4ad

.query-add-ons {
	width: 100%;
}

.add-ons-list {
	display: flex;
	align-items: center;
	gap: 16px;

	.add-ons-tabs {
		display: flex;
		flex-wrap: wrap;

		.add-on-tab-title {
			display: flex;
			gap: var(--margin-2);
			align-items: center;
			justify-content: center;
			font-size: var(--font-size-xs);
			font-style: normal;
			font-weight: var(--font-weight-normal);

			color: var(--l2-foreground);
		}

		.tab {
			border: 1px solid var(--l1-border);
			border-left: none;
			min-width: 120px;
			height: 36px;
			line-height: 36px;

			&:first-child {
				border-left: 1px solid var(--l1-border);
			}
		}

		.tab::before {
			background: var(--l1-border);
		}

		.selected-view {
			color: var(--text-robin-500);
			border: 1px solid var(--l1-border);

			display: none;
		}

		.selected-view::before {
			background: var(--l1-border);
		}
	}

	.compass-button {
		width: 30px;
		height: 30px;

		border-radius: 2px;
		border: 1px solid var(--l1-border);
		background: var(--l3-background);
		box-shadow: 0px 0px 8px 0px rgba(0, 0, 0, 0.1);
	}
}

.having-filter-container {
	width: 100%;
	display: flex;
	flex-direction: row;
	align-items: center;

	.having-filter-select-container {
		width: 100%;
		display: flex;
		flex-direction: row;
		align-items: center;

		.having-filter-select-editor {
			border-radius: 2px;
			flex: 1;
			width: calc(100% - 40px);

			.cm-content {
				padding: 0;
			}

			.cm-editor {
				border-radius: 2px;
				background-color: transparent !important;
				position: relative !important;

				&:focus-within {
					border-color: var(--primary-background);
				}

				&.cm-focused {
					outline: none !important;
				}

				.cm-content {
					border-radius: 2px;
					border: 1px solid var(--l1-border);
					border-top-right-radius: 0px;
					border-bottom-right-radius: 0px;
					padding: 0px !important;
					background-color: var(--l2-background) !important;

					&:focus-within {
						border-color: var(--l1-border);
					}
				}

				.cm-tooltip-autocomplete {
					background: var(--l3-background) !important;
					color: var(--l1-background) !important;
					border-radius: 2px !important;
					font-size: 12px !important;
					font-weight: 500 !important;
					position: absolute !important;
					top: calc(100% + 6px) !important;
					left: 0px !important;
					right: 0px !important;

					border-radius: 4px;
					border: 1px solid var(--l1-border);
					background: linear-gradient(
						139deg,
						color-mix(in srgb, var(--card) 80%, transparent) 0%,
						color-mix(in srgb, var(--card) 90%, transparent) 98.68%
					) !important;
					backdrop-filter: blur(20px);
					box-sizing: border-box;
					box-shadow: 0 4px 8px rgba(0, 0, 0, 0.6);
					font-family: 'Space Mono', monospace !important;
					color: var(--l1-foreground) !important;

					ul {
						width: 100% !important;
						max-width: 100% !important;
						font-family: 'Space Mono', monospace !important;
						min-height: 200px !important;

						&::-webkit-scrollbar {
							width: 0.3rem;
						}
						&::-webkit-scrollbar-corner {
							background: transparent;
						}
						&::-webkit-scrollbar-thumb {
							background: rgb(136, 136, 136);
							border-radius: 0.625rem;
						}
						&::-webkit-scrollbar-track {
							background: transparent;
						}

						li {
							width: 100% !important;
							max-width: 100% !important;
							line-height: 36px !important;
							height: 36px !important;
							padding: 4px 8px !important;

							display: flex !important;
							align-items: center !important;
							gap: 8px !important;
							box-sizing: border-box;
							overflow: hidden;

							font-family: 'Space Mono', monospace !important;

							.cm-completionIcon {
								display: none !important;
							}

							&[aria-selected='true'] {
								// background-color: rgba(78, 116, 248, 0.7) !important;
								background: color-mix(
									in srgb,
									var(--bg-robin-200) 4%,
									transparent
								) !important;
							}
						}
					}
				}

				.cm-gutters {
					display: none !important;
				}

				.cm-scroller {
					scrollbar-width: none;

					&::-webkit-scrollbar {
						display: none;
					}

					&::-webkit-scrollbar-thumb {
						display: none;
					}

					&::-webkit-scrollbar-track {
						display: none;
					}

					&::-webkit-scrollbar-corner {
						display: none;
					}
				}

				.cm-line {
					line-height: 36px !important;
					font-family: 'Space Mono', monospace !important;
					background-color: var(--l2-background) !important;

					::-moz-selection {
						background: var(--l3-background) !important;
						opacity: 0.5 !important;
					}

					::selection {
						background: var(--l3-background) !important;
						opacity: 0.5 !important;
					}

					.cm-function {
						color: var(--primary-background) !important;
					}

					.chip-decorator {
						background: var(--l3-background) !important;
						color: var(--l1-foreground) !important;
						border-radius: 4px;
						padding: 2px 4px;
						margin-right: 4px;
					}
				}

				.cm-selectionBackground {
					background: var(--l3-background) !important;
					opacity: 0.5 !important;
				}

				.cm-activeLine > span {
					font-size: 12px !important;
				}
			}
		}

		.close-btn {
			border-radius: 0px 2px 2px 0px;
			border: 1px solid var(--l2-border);
			background: var(--l2-background);
			height: 38px;
			width: 38px;

			border-left: transparent;
			border-top-left-radius: 0px;
			border-bottom-left-radius: 0px;
		}
	}
}

.selected-add-ons-content {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(420px, 1fr));
	gap: 8px;
	padding-bottom: 8px;
	position: relative;

	.add-on-content {
		display: flex;
		flex-direction: column;
		gap: 8px;

		max-width: 100%;
		min-width: 100%;
		min-width: 420px;

		box-sizing: border-box;
		position: relative;
		.cm-placeholder {
			font-size: 12px !important;
		}
	}
}
