/* CSS Document */


/******************************* Base *******************************/

:root {
	--coul-white: #FFFFFF;
	--coul-black: #1f2937;
	--coul-grey: #6b7280;
	--coul-light-grey: #cecece;
	--coul-pale-grey: #f2f2f2;
	--coul-dark-blue: #1b2949;
	--coul-light-blue: #7689c3;
	--coul-blue: #3366FF;
	--coul-red: #FF3366;
	
	--gap : 10px;
	--gap2: calc(var(--gap) * 2);
	--gap4: calc(var(--gap) * 4);
	--gap8: calc(var(--gap) * 8);
	--gap16: calc(var(--gap) * 16);
	
	/* Font size */
	--fsize1: 16px;
	--fsize2: 20px;
	--fsize3: 32px;
	--fsize4: 56px;
	--fsize5: 128px;
	--fsizemin : max(0.75em, 12px);
	
	--fontfam : "";
	
	--transitionA : 0.5s;
	--transitionB : 1s;
	
	--radius5 : 5px;
	--radius10 : 10px;
	
}

* {
	box-sizing: border-box;
}

body {
	background-color: var(--coul-pale-grey);
	color: var(--coul-black);
	margin: 0;
	font-family: "Roboto", sans-serif;
	font-size: var(--fsize1);
}

main {
	display: flex;
	flex-direction: column;
	grid-gap: var(--gap4);
	padding: var(--gap4);
}

a {
	transition: color var(--transitionA);
	color: inherit;
	text-decoration: none;
}

h1, h2, h3, h4, p {
	margin: 0;
}

header {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

hr {
	width: 100%;
}

.custom-hr {
	height: 1px;
	background-color: var(--coul-black);
	display: flex;
	justify-content: center;
	align-items: center;
	margin: var(--gap);
}

.custom-hr > * {
	background-color: var(--coul-black);
	padding: 0 var(--gap);
	color: var(--coul-white);
	border-radius: var(--radius5);
}

.center {
	text-align: center;
}
/* Maintenance */

#maintenance-page {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	min-height: 100vh;
}

/* Page 404 */

#page-404 {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	grid-gap: var(--gap2);
	min-height: 100vh;
	background-color: var(--coul-###);
	color: var(--coul-###);
	text-align: center;
	padding: var(--gap2);
}

#page-404 h1 {
	font-size: var(--fsize2);
	margin: 0;
	color: var(--coul-);
}

.subjective-404 {
	width: 100%;
	max-width: 600px;
}

/* Alerts */

.alerts-container {
	position: fixed;
	bottom: var(--gap2);
	left: 50%;
	transform: translateX(-50%);
	z-index: 5;
	pointer-events: none;
	animation: disappear 5s forwards;
	animation-delay: 5s;
}

@keyframes disappear {
	0% { opacity: 1;}
	10% { opacity: 0;}
	100% { opacity: 0; display: none;}
}

.success {
	padding: var(--gap4);
	background-color: var(--coul-blue);
	color: var(--coul-white);
}

.error {
	padding: var(--gap4);
	background-color: var(--coul-red);
	color: var(--coul-white);
}

.error-small {
	padding: var(--gap);
	background-color: var(--coul-red);
	color: var(--coul-white);
}

#login-form-container {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	min-height: 100vh;
}

#login-form {
	display: flex;
	flex-direction: column;
	width: 400px;
	grid-gap: var(--gap);
}

#login-form > i {
	align-self: center;
	padding: var(--gap2);
	border-radius: 50%;
	background-color: var(--coul-black);
	color: var(--coul-white);
	font-size: var(--fsize3);
	height: 80px;
	width: 80px;
	justify-content: center;
	align-items: center;
	display: flex;
}

#login-form h1 {
	text-align: center;
}

/* Nav */

nav {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	padding: var(--gap2) var(--gap4);
	grid-gap: var(--gap2);
	background-color: var(--coul-white);
}

#nav-left-container, #nav-right-container {
	display: flex;
	align-items: center;
	grid-gap: var(--gap4);
}

.identity-role {
	text-align: right;
	color: var(--coul-grey);
}

/* Buttons */

.button {
	padding: var(--gap) var(--gap2);
	display: flex;
	align-items: center;
	justify-content: center;
	grid-gap: var(--gap);
	font-size: inherit;
	font-family: inherit;
	outline: none;
	border-radius: var(--radius10);
	cursor: pointer;
	filter: grayscale(0);
	transition: var(--transitionA);
}

.button:hover {
	filter: grayscale(0.5);
}

.button:has(i) {
	padding: var(--gap) !important;
}

.button-white {
	border: solid 1px var(--coul-light-grey);
	background-color: var(--coul-white);
	color: var(--coul-black);
}


.button-blue {
	border: solid 1px var(--coul-blue);
	background-color: var(--coul-blue);
	color: var(--coul-white);
}


.button-red {
	border: solid 1px var(--coul-red);
	background-color: var(--coul-red);
	color: var(--coul-white);
}

#greeting-cards, #templates-list, #users-list {
	display: grid;
	grid-gap: var(--gap2);
	grid-template-columns: repeat(auto-fill, minmax(450px, 1fr));
}

#groups-list {
	display: grid;
	grid-gap: var(--gap2);
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
}

.card, .template, .user {
	display: flex;
	flex-direction: column;
	grid-gap: var(--gap2);
	padding: var(--gap2);
	border: solid 1px var(--coul-light-grey);
	border-radius: var(--radius10);
	background-color: var(--coul-white);
	width: 100%;
}

.group {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	grid-gap: var(--gap2);
	padding: var(--gap2);
	border: solid 1px var(--coul-black);
	border-radius: var(--radius10);
	background-color: var(--coul-black);
	color: var(--coul-white);
	width: 100%;
}

.card-date, .user-role {
	color: var(--coul-grey);
}

.card-message, .template-path {
	padding: var(--gap);
	background-color: var(--coul-pale-grey);
	border-radius: var(--radius5);
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.card-actions, .template-actions, .user-actions {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	grid-gap: var(--gap);
}

.template-name {
	font-weight: bold;
	text-align: center;
	text-transform: uppercase;
	font-size: var(--fsize2);
}

#no-cards, #no-templates {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	grid-gap: var(--gap2);
	padding: var(--gap4);
	background-color: var(--coul-white);
	border: solid 1px var(--coul-light-grey);
	border-radius: var(--radius10);
}

.form-container {
	display: flex;
	flex-direction: column;
	grid-gap: var(--gap2);
	align-items: flex-start;
	width: 700px;
	max-width: 100%;
	margin: auto;
}

#form-actions {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
}

.custom-form {
	display: flex;
	flex-direction: column;
	grid-gap: var(--gap2);
	width: 100%;
	margin: auto;
	padding: var(--gap4);
	background-color: var(--coul-white);
	border: solid 1px var(--coul-light-grey);
	border-radius: var(--radius10);
}

.custom-form > * {
	display: flex;
	flex-direction: column;
}

.custom-form > * > label {
	display: flex;
	align-items: center;
}

input, textarea, select {
	border: solid 1px var(--coul-light-grey);
	resize: none;
	outline: none;
	padding: var(--gap);
	border-radius: var(--radius5);
	font-family: inherit;
	color: inherit;
	font-size: inherit;
}
