@keyframes fadeSlideIn {
	0% {
		opacity: 0;
		transform: translateY(10px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

:root {
	--bg: #f5f5f5;
	--grey: #ddd;
	--grey_50: #fafafa;
	--grey_100: #e2e2e2;
	--grey_200: #eee;
	--grey_300: #f5f5f5;
	--grey_400: #fcfcfc;
	--grey_500: #bdbdbd;
	--grey_600: #8e8e8e;

	--basic: #000;
	--basic_100: #424141;
	--basic_200: #605e5e;
	--basic_300: #949494;
	--basic_400: #b5b5b5;
	--basic_500: #e0e0e0;
	--primary: #ec4a36;
	--secondary: #1c55ce;

	--green: #008f5d;
	--blue: #3892f3;
	--orange: #f68524;
	--red: #ea3829;
	--pink: #ff2eb9;
	--white: #fff;

	--btn-color-hover: #357abd;
	--collapse-header-bg: #70aaed;
	--output-bg: #f7f9fc;
	--border-radius-base: 0.3rem;
	--app-width: 1920px;
}

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	font-family: system-ui, sans-serif;
}

body {
	color: var(--basic);
	background-color: var(--bg);
	display: flex;
	align-items: flex-start;
	justify-content: center;
	min-height: 100vh;
	padding: 20px 20px 60px;
}

[disabled] {
	cursor: not-allowed;
}

.g {
	color: #aaa;
}
.tac {
	text-align: center;
}
.tar {
	text-align: right;
}
.ml10 {
	margin-left: 10px;
}
.ml20 {
	margin-left: 20px;
}
.ml30 {
	margin-left: 30px;
}
.ml40 {
	margin-left: 30px;
}
.tdu {
	text-decoration: underline;
}

#app {
	max-width: var(--app-width);
	padding: 0.3rem 2rem;
	width: 100%;
}

header {
	margin-bottom: 2rem;
	display: flex;
	width: 100%;
	justify-content: space-between;
	align-items: center;
}

.logo {
	width: 150px;
}

.logout {
	display: none;
	flex: 0 0 auto;
}

form {
	display: flex;
	gap: 0.3rem;
	margin-bottom: 1.5rem;
}

.search-form {
	display: none;
	position: relative;
}

.login-form {
	flex-wrap: wrap;
	max-width: 760px;
	margin-left: auto;
	margin-right: auto;
}

input {
	flex: 0 0 80%;
	padding: 0.7rem 1rem;
	border: 1px solid #ccc;
	border-radius: var(--border-radius-base);
	outline: none;
	transition: all 0.2s;
}
.search-form {
	flex-wrap: wrap;
}
.search-form input {
	flex: 3;
	text-overflow: ellipsis;
	overflow: hidden;
	white-space: nowrap;
}
.search-form .inputs-wrapper {
	flex: 2;
	display: flex;
	gap: 0.3rem;
	max-width: 100%;
}
.search-form .inputs-wrapper .search-btn {
	flex: 1;
	width: fit-content;
}
.search-form .inputs-wrapper #campaignSelect {
	flex: auto;
	padding: 0.7rem 1rem;
	border: 1px solid #ccc;
	border-radius: var(--border-radius-base);
	outline: none;
	transition: all 0.2s;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-size: 20px;
	background-position: right 10px center; 
	padding-right: 35px;

}

.search-form .inputs-wrapper #campaignSelect:focus-visible {
	outline: 1px solid var(--basic);
}

input:focus {
	border-color: var(--basic);
}

.login-form input {
	flex: 0 0 100%;
}

button {
	flex: 1;
	background: var(--blue);
	color: white;
	border: none;
	border-radius: var(--border-radius-base);
	padding: 0.7rem 1.2rem;
	cursor: pointer;
	transition: background 0.3s;
}

button:disabled {
	background: var(--basic_400);
}

button:not(:disabled):hover {
	background: var(--btn-color-hover);
}

.login-btn {
	width: 100%;
	flex: 0 0 auto;
}

.table-container {
	max-width: var(--app-width);
	overflow-x: auto;
	margin: 0.5rem auto;
}

.data-table {
	width: 100%;
	border-collapse: collapse;
	overflow: hidden;
	font-size: 1rem;
}

.data-table thead {
	background: var(--basic_500);
	color: var(--basic);
	text-align: left;
}

.data-table th,
.data-table td {
	padding: 0.5rem 1rem;
}

.data-table tbody tr {
	border-bottom: 1px solid #ddd;
	background-color: var(--white);
}

.data-table tbody tr:nth-child(2n) {
	background-color: var(--grey_50);
}

.data-table tbody tr:hover {
	background-color: var(--grey_200);
	transition: background 0.2s;
}

.collapse {
	border-radius: var(--border-radius-base);
	overflow: hidden;
	transition: all 0.3s;
	margin: 1rem auto;
}

.collapse-header {
	background: var(--collapse-header-bg);
	color: var(--white);
	padding: 1rem;
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.collapse-header.not-pointer {
	cursor: unset;
}

.arrow {
	transition: all 0.3s ease;
}

.arrow.rotate {
	transform: rotate(90deg);
}

.collapse-content {
	max-height: 0;
	overflow: hidden;
	transition: all 0.3s ease;
	padding: 0 1rem;
	color: var(--basic);
}

.collapse-content.show {
	padding: 1rem;
}

.loader-container {
	text-align: center;
}

.loader {
	margin: 1rem auto;
	width: 48px;
	height: 48px;
	border: 3px solid var(--white);
	border-radius: 50%;
	display: none;
	position: relative;
	box-sizing: border-box;
	animation: rotation 1s linear infinite;
}

.loader.show {
	display: inline-block;
}

.loader::after {
	content: '';
	box-sizing: border-box;
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 56px;
	height: 56px;
	border-radius: 50%;
	border: 3px solid transparent;
	border-bottom-color: var(--blue);
}

@keyframes rotation {
	0% {
		transform: rotate(0deg);
	}
	100% {
		transform: rotate(360deg);
	}
}

.no-data {
	color: var(--basic);
	border-radius: var(--border-radius-base);
	text-align: center;
	animation: fadeIn 0.5s;
	margin: 2rem auto;
}

.no-data-title {
	font-size: 2rem;
	font-weight: 600;
	margin-bottom: 1rem;
}

.no-data-text {
	font-size: 1rem;
}

.output {
	display: none;
}

@keyframes fadeIn {
	from {
		opacity: 0;
		transform: translateY(10px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}
