@import url("https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap");

:root {
	--bg: #f1efef;
	--fg: #333333;
	--fghover: #555555;
	--muted: #9aa3af;
	--border-color: #d3d3d3;
	--card: #ffffff;
	--accent: #00a4ff;
	--accenthover: #005786;
	--err: #920606;
	--errhover: #6d0a0a;
	--ok: #10b981;
	--white: #ffffff;
}
* {
	box-sizing: border-box;
}

body {
	font-family: "Open Sans", sans-serif;
	background-color: var(--bg);
	color: var(--fg);
	padding: 0;
	margin: 0;
	font-size: 14px;
	h1,
	h2,
	h3,
	h4,
	h5,
	h6 {
		font-family: "Roboto", sans-serif;
		margin: 0;
		padding: 0;
		margin-bottom: 0.5rem;
	}
	h1 span,
	h2 span,
	h3 span {
		color: var(--accent);
	}
	a {
		text-decoration: none;
		color: var(--accent);
		&:hover {
			color: var(--accenthover);
		}
	}
	p {
		margin: 0;
		padding: 0;
		padding-bottom: 0.5rem;
	}
	.text-center {
		text-align: center;
	}
	.text-right {
		text-align: right;
	}
	.muted {
		color: var(--muted);
	}
	header {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 1rem 1rem;
		a.logo {
			display: block;
			width: 100%;
			img {
				max-width: 200px;
				height: auto;
			}
		}
		.button {
			margin-top: 0;
		}
	}
	footer {
		padding: 1rem;
		background-color: var(--accent);
		background-image: url("/images/footer-bg.png");
		background-repeat: repeat;
		margin-top: 3rem;
		.footer-content {
			display: flex;
			justify-content: flex-start;
			align-items: center;
			padding: 1rem 0;
			gap: 2rem;
			color: var(--white);
			a {
				color: var(--accenthover);
				&:hover {
					color: var(--fg);
				}
			}
			img {
				width: auto;
				height: 100px;
				filter: brightness(0) invert(1);
			}
			p {
				text-align: left;
				margin-top: 0.5rem;
			}
			ul {
				margin: 0;
				padding: 0;
				list-style-type: none;
				li {
					display: inline-block;
					margin-right: 1rem;
					font-size: 1.2rem;
				}
			}
		}
	}
	main {
		min-height: calc(100vh - 91px - 216px);
	}
	&.login {
		main {
			display: flex;
			justify-content: flex-start;
			align-items: center;
			flex-wrap: nowrap;
			flex-direction: row;
			color: var(--fg);
			background-color: var(--white);
			div {
				padding: 2rem 7%;
				width: 50%;
				p {
					opacity: 0.5;
				}
				.button {
					width: 100%;
					background-color: var(--fg);
					&:hover {
						background-color: var(--fghover);
					}
				}
				&.left {
					display: flex;
					background-color: var(--accent);
					background-image: url("/images/footer-bg.png");
					background-repeat: repeat;
					height: 100vh;
					width: 50%;
					align-items: flex-start;
					flex-direction: column;
					justify-content: center;
					align-content: center;
					flex-wrap: nowrap;
					position: relative;
					color: var(--white);
					padding-left: 5vw;
					h1 {
						font-size: 2.25rem;
						span {
							color: var(--fg);
						}
					}
					img {
						max-width: 80%;
						width: 200px;
						height: auto;
						position: absolute;
						top: 1rem;
						left: 1rem;
						filter: brightness(0) invert(1);
					}
					p {
						opacity: 1;
					}
					a {
						color: var(--white);
						&:hover {
							color: var(--fg);
						}
					}
				}
				.logo-container {
					display: flex;
					width: 100%;
					flex-direction: column;
					flex-wrap: nowrap;
					align-items: center;
					justify-content: flex-start;
					gap: 0;
					padding: 0;
					margin-bottom: 1rem;
					img {
						max-width: 75px;
						display: block;
					}
					div {
						width: 100%;
						text-align: center;
						h1 {
							line-height: 1;
							font-weight: 100 !important;
							strong {
								font-weight: 900 !important;
							}
						}
					}
				}
			}
		}
	}
	&.dashboard {
		main {
			display: flex;
			justify-content: flex-start;
			flex-wrap: nowrap;
			flex-direction: row;
			.content {
				width: 65%;
				padding: 0 1rem;
			}
			.recent-letters {
				width: calc(35% - 1rem);
				.letter {
					width: 100%;
					padding: 0;
					margin-bottom: 1rem;
					h3 {
						color: var(--accent);
					}
					.letter-meta {
						display: flex;
						justify-content: space-around;
						align-items: center;
						text-align: center;
						gap: 0.5rem;
						margin-top: 1rem;
						div {
							border: 1px solid var(--border-color);
							padding: 0.5rem;
							width: 100%;
							font-weight: bold;
							label {
								font-size: 11px;
								color: var(--muted);
								margin-bottom: 0.5rem;
							}
						}
						.check-icon img {
							width: 1rem;
							height: 1rem;
						}
					}
				}
			}
		}
	}

	&.letter-view {
		main {
			display: flex;
			justify-content: flex-start;
			flex-wrap: nowrap;
			flex-direction: row;
			.content {
				width: 65%;
				padding: 0 1rem;
			}
			.recent-letters {
				width: calc(35% - 1rem);
			}
		}
		.content {
			.letter-meta {
				div {
					border: 0px !important;
				}
			}
			.card {
				margin: 1rem 0;
			}
		}
	}

	&.letters-view {
		.all-letters {
			margin: 0 1rem;
			.letter {
				display: grid;
				grid-template-columns: repeat(3, 1fr);
				gap: 1rem;
				.card {
					width: 100%;
					border: 1px solid var(--border-color);
					h3 {
						min-height: 50px;
						text-align: center;
					}
					p {
						text-align: center;
					}
				}
			}
		}
	}

	.letter {
		width: 100%;
		padding: 0;
		margin-bottom: 1rem;
		h3 {
			color: var(--accent);
		}
		.letter-meta {
			display: flex;
			justify-content: space-around;
			align-items: center;
			text-align: center;
			gap: 0.5rem;
			margin-top: 1rem;
			div {
				border: 1px solid var(--border-color);
				padding: 0.5rem;
				width: 100%;
				font-weight: bold;
				background-color: var(--white);
				border-radius: 5px;
				label {
					font-size: 11px;
					color: var(--muted);
					margin-bottom: 0.5rem;
				}
			}
			.check-icon img {
				width: 1rem;
				height: 1rem;
			}
		}
	}
	&.page {
		main {
			padding: 0 1rem;
			section {
				margin: 1rem 0;
			}
		}
	}
}

div.alert.error {
	width: 100%;
	padding: 0;
	div {
		background-color: var(--err);
		color: var(--white);
		padding: 0.5rem;
		border-radius: 5px;
		margin-bottom: 1rem;
		width: 100%;
	}
}

div.alert.success {
	width: 100%;
	padding: 0;
	div {
		background-color: var(--ok);
		color: var(--white);
		padding: 0.5rem;
		border-radius: 5px;
		margin-bottom: 1rem;
		width: 100%;
	}
}

.card {
	padding: 0.75rem;
	background-color: var(--card);
	color: var(--fg);
	border-radius: 5px;
}

input[type="text"],
input[type="email"],
input[type="password"],
input[type="datetime-local"],
textarea {
	padding: 12px 16px;
	border: 1px solid var(--border-color);
	border-radius: 5px;
	background-color: #ffffff;
	color: var(--fg);
	font-size: 14px;
	display: block;
	width: 100%;
	margin-bottom: 1rem;
	&:focus {
		outline: none;
		border-color: var(--accent);
	}
}

textarea {
	height: 400px;
	resize: vertical;
}

label {
	display: block;
	color: var(--fg);
	opacity: 0.8;
	margin-bottom: 0.5rem;
}

.button {
	background-color: var(--accent);
	color: var(--white);
	border: none;
	border-radius: 5px;
	padding: 12px 16px;
	font-size: 14px;
	cursor: pointer;
	margin-top: 1rem;
	text-decoration: none;
	display: block;
	text-align: center;
	&:hover {
		color: var(--white);
		background-color: var(--accenthover);
	}
	&.dark {
		background-color: var(--fg);
		color: var(--white);
		&:hover {
			background-color: var(--fghover);
		}
	}
	&.danger {
		background-color: var(--err);
		color: var(--white);
		&:hover {
			background-color: var(--errhover);
		}
	}
}

.danger-zone {
	background-color: #ffd1d1;
	border: 1px solid var(--err);
	padding: 1rem;
	margin: 1rem 0;
	color: var(--err) !important;
	border-radius: 5px;
	h3 {
		color: var(--err) !important;
	}
}

@media (max-width: 1152px) {
	body {
		&.letters-view {
			& .all-letters {
				.letter {
					grid-template-columns: repeat(2, 1fr);
				}
			}
		}
	}
}
@media (max-width: 1050px) {
	body {
		&.dashboard,
		&.letter-view {
			& main {
				.content {
					width: 60%;
				}
				.recent-letters {
					width: calc(40% - 1rem);
				}
			}
		}
	}
}

@media (max-width: 1024px) {
	body {
		&.dashboard,
		&.letter-view {
			& main {
				flex-direction: column;
				.content {
					width: 100%;
				}
				.recent-letters {
					margin: 0 1rem;
					margin-top: 1rem;
					width: calc(100% - 2rem);
				}
			}
		}
		&.letters-view {
			& .all-letters {
				.letter {
					& .letter-meta {
						flex-direction: column;
					}
				}
			}
		}
	}
}

@media (max-width: 768px) {
	body {
		&.login {
			background-color: var(--accent);
			background-image: url("/images/footer-bg.png");
			background-repeat: repeat;
			& main {
				background-color: transparent;
				& div {
					width: 90%;
					margin: 1rem auto;
					background-color: var(--white);
					border-radius: 5px;
					&.left {
						display: none;
					}
				}
			}
		}
		&.letter-view {
			& .content {
				& .letter-meta {
					flex-direction: column;
				}
			}
		}
		&.letters-view {
			& .all-letters {
				.letter {
					grid-template-columns: repeat(1, 1fr);
					& .card {
						h3 {
							min-height: auto;
						}
					}
				}
			}
		}
		& footer {
			& .footer-content {
				& ul {
					li {
						display: block;
					}
				}
			}
		}
	}
}

@media (max-width: 388px) {
	body {
		header {
			flex-direction: column;
			text-align: center;
			grid-template-columns: repeat(1, 1fr);
			.button {
				margin-top: 1rem;
				width: 100%;
			}
		}
		&.dashboard,
		&.letter-view {
			& main {
				& .recent-letters {
					& .letter {
						& .letter-meta {
							flex-direction: column;
						}
					}
				}
			}
			& .content {
				& .letter-meta {
					flex-direction: column;
				}
				.danger-zone {
					.button {
						display: block !important;
					}
				}
			}
		}
	}
}
