@import url('https://fonts.googleapis.com/css2?family=Barlow:wght@400;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Source+Sans+3:ital,wght@0,200..900;1,200..900&display=swap');

@keyframes loading {
  0%   {transform: rotate(0deg);}
  100% {transform: rotate(360deg);}
}

* {
	padding: 0;
	margin: 0;
}

html {
	--base_num: 8;

	--dark_color: #0A0A0A;
	--not_so_dark_color: #1A1A1A;
	--light_color: #f5f5f5;
	--bg_color: var(--light_color);
	--font_color: var(--dark_color);
	--pionyr__b: rgb(0,112,175);
	--pionyr__r: rgb(238,52,36);
	--pionyr__g: rgb(87,170,39);
	--pionyr__y: rgb(255,216,79);
}

body {
	margin: calc(var(--base_num) * 4px) 16%;
	display: grid;
	height: calc(100vh - (var(--base_num) * 4px * 2));
	grid-template-areas:
		"menu content";
	grid-template-columns: 30% calc(70% - var(--base_num)* 4px);
	grid-template-rows: 100%;
	grid-column-gap: calc(var(--base_num) * 4px);

	font-family: "Source Sans 3", sans-serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;

	color: var(--font_color);
	background-color: var(--bg_color);
}

/* Postraní menu */
#side_bar {
	grid-area: menu;
	max-width: 350px;

	overflow-y: auto;
	scrollbar-color: color-mix(in srgb, var(--font_color), black 40%) color-mix(in srgb, var(--bg_color), white 10%);
}

#side_bar #page_title .title {
	font-family: "Barlow", sans-serif;
	font-weight: 700;
	font-style: normal;
}

#side_bar #isMenuOpen {
	display: none;
}

#side_bar .visible_menu {
	padding: calc(var(--base_num) * 3px);
	padding-bottom: 0;
	font-weight: 700;
}

/*#side_bar .user_menu .user_info {
	display: flex;
	height: fit-content;
	flex-wrap: wrap;
	background-color: var(--pionyr__r);
	color: var(--light_color);
	padding: calc(var(--base_num) * 2px);
	border-radius: calc(var(--base_num) * 1px);
}

#side_bar .user_menu .user_info * {
	display: inline-block;
	flex-grow: 1;
}*/

#side_bar .user_menu .user_edit {
	margin-top: calc(var(--base_num)* 1px);
	height: fit-content;
	display: flex;
	flex-wrap: wrap;
	background-color: var(--pionyr__r);
	color: var(--light_color);
	padding: calc(var(--base_num) * 2px);
	border-radius: calc(var(--base_num) * 1px);
}

#side_bar .user_menu .user_edit .user_email {
	margin-bottom: calc(var(--base_num) * 1px);
	width: 100%;
}

#side_bar .user_menu .user_edit .user_edit_label {
	margin-right: calc(var(--base_num) * 1px);
}

#side_bar .user_menu .user_edit #user_name_edit, #side_bar .user_menu .user_edit .user_edit_submit {
	flex-grow: 1;
}

#side_bar .user_menu .user_edit .user_edit_submit {
	margin-top: calc(var(--base_num) * 1px);
}

#side_bar .user_menu .user_progress a, #side_bar .user_menu .user_progress a:visited, #side_bar .user_menu .user_progress a:link {
	margin-top: calc(var(--base_num)* 1px);
	height: fit-content;
	background-color: var(--pionyr__g);
	color: var(--light_color);
	padding: calc(var(--base_num)* 2px);
	border-radius: calc(var(--base_num)* 1px);
	display: block;
	text-decoration: none;
}

#side_bar .user_menu .user_progress a:hover, #side_bar .user_menu .user_progress a:focus {
	background-color: color-mix(in srgb, var(--pionyr__g), white 20%);
}

#side_bar .user_menu .user_progress a:active {
	background-color: color-mix(in srgb, var(--pionyr__g), black 10%);
}

#side_bar .menu {
	margin: calc(var(--base_num)* 2px) 0;
}

#side_bar .menu ul {
	list-style-type: none;
}

#side_bar .menu li {
	margin-bottom: 2px;
	text-align: left;
}

#side_bar .menu a, #side_bar .menu a:visited, #side_bar .menu a:link {
	padding: calc(var(--base_num) * 1px) calc(var(--base_num) * 2px);
	display: inline-block;
	width: 100%;
	box-sizing: border-box;

	color: var(--dark_color);
	text-decoration: none;
	background-color: var(--pionyr__y);
	border-radius: calc(var(--base_num) * 1px);
	text-underline-position: under;
}

#side_bar .menu a:hover, #side_bar .menu a:focus {
	background-color: color-mix(in srgb, var(--pionyr__y), white 30%);
}

#side_bar .menu a:active {
	background-color: color-mix(in srgb, var(--pionyr__y), black 10%);
}

#side_bar .pionyr_logo {
	background-image: url("/lib/img/logo_pionyr_rgb.svg");
	background-repeat: no-repeat;
	background-size: 100px auto;
	height: 100px;
}

#side_bar .made_by {
	padding: calc(var(--base_num) * 2px);
}

#side_bar .made_by a, #side_bar .made_by a:visited, #side_bar .made_by a:link {
	color: var(--pionyr__b);
}

#side_bar .made_by a:hover, #side_bar .made_by a:focus {
	color: color-mix(in srgb, var(--pionyr__b), black 20%);
}

#side_bar .made_by a:active {
	color: var(--not_so_dark_color);
}

/* Hlavní obsah */
#content {
	padding-right: calc(var(--base_num) * 2px);
	grid-area: content;
	max-width: 1000px;
	overflow-y: auto;

	scrollbar-color: color-mix(in srgb, var(--font_color), black 40%) color-mix(in srgb, var(--bg_color), white 10%);
}

#content #page_description {
	margin-bottom: calc(var(--base_num) * 4px);
}

#content #page_description .description {
	font-family: "Barlow", sans-serif;
	font-weight: 400;
	font-style: normal;
}

#content #page_description .description::first-letter {
	text-transform: uppercase;
}

#content .user {
	margin-bottom: calc(var(--base_num) * 2px);	
	color: var(--light_color);
}

#content .user summary {
	padding: calc(var(--base_num) * 2px);
	cursor: pointer;
	list-style: none;
	display: flex;
	justify-content: space-between;

	border-radius: calc(var(--base_num) * 1px);
	background-color: var(--pionyr__b);
	font-size: 20px;
}

#content .current.user summary {
	background-color: color-mix(in srgb, var(--pionyr__b), black 30%);
}

#content .user_name, .user_completed {
	padding: 0;
	margin: 0;
}

#content .user_tasks {
	padding-left: calc(var(--base_num) * 2px);
	margin: calc(var(--base_num) * 2px);
	margin-left: calc(var(--base_num)* 4px);
	margin-bottom: calc(var(--base_num)* 4px);
	list-style-type: disc;
}

#content .user_task {
	margin-bottom: calc(var(--base_num) * 1px);
	color: var(--font_color);
}

#content .user_task:last-child {
	margin-bottom: 0;
}

/* Úkoly jednoho uživatele */
#content .tasks_list {
	margin-left: calc(var(--base_num)* 1px);
	margin-top: calc(var(--base_num) * 4px);
	list-style-type: none;
}

#content .tasks_list .one_task {
	padding: calc(var(--base_num) * 1px);
	margin-bottom: calc(var(--base_num) * 2px);
	width: 70%;
	max-width: 650px;
	min-height: 40px;
	display: flex;
	position: relative;
	justify-content: space-between;
	font-size: 18px;
	border-bottom: 1px solid var(--font_color);
}

#content .tasks_list .one_task .task_title {
	max-width: calc(100% - 60px);
	padding-right: calc(var(--base_num) * 4px);
	box-sizing: border-box;
}


#content .tasks_list .one_task .task_title:before {
	content: "😞";
	height: 100%;
	text-align: center;
	line-height: 40px;
	font-size: 30px;
	text-shadow: 0 0 2px black;
}

#content .tasks_list .one_task .task_state:checked ~ .task_title:before {
	content: "😄";
}

#content .tasks_list .one_task .task_state {
	appearance: none;
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: -1;
	background-color: none;
}

#content .tasks_list .one_task .task_slider {
	padding: 4px;
	align-self: center;
	display: flex;
	align-items: center;
	justify-content: start;
	min-width: 50px;
	height: 20px;
	position: relative;
	top: 0;
	left: 0;

	cursor: pointer;
	background-color: color-mix(in srgb, var(--pionyr__r), white 10%);
	transition: ease .4s;
	border-radius: 30px;
}

#content .tasks_list .one_task.loading .task_slider .slider_dot {
	-webkit-mask: url("loading.svg?v=4") no-repeat;
	mask: url("loading.svg?v=4") no-repeat;
	mask-size: cover;
	animation-name: loading;
	animation-duration: 2s;
	animation-iteration-count: infinite;
	animation-timing-function: cubic-bezier(0, 0, 0.5, 0.9);
	transition: none;
}

#content .tasks_list .one_task .task_slider .slider_dot {
	min-height: 20px;
	min-width: 20px;
	border-radius: 20px;
	background-color: color-mix(in srgb, var(--pionyr__r), black 30%);
	transition: ease .4s;
}

#content .tasks_list .one_task .task_state:hover ~ .task_slider {
	background-color: color-mix(in srgb, var(--pionyr__r), white 20%);
	transition: none;
}

#content .tasks_list .one_task .task_state:hover ~ .task_slider .slider_dot {
	background-color: color-mix(in srgb, var(--pionyr__r), black 20%);
	transition: none;
}


#content .tasks_list .one_task .task_slider .slider_dummy {
	flex-basis: 0;
	background-color: transparent;
	transition: ease-out .4s;
}

#content .tasks_list .one_task .task_state:checked ~ .task_slider .slider_dot {
	background-color: color-mix(in srgb, var(--pionyr__g), black 20%);
}

#content .tasks_list .one_task .task_state:checked ~ .task_slider {
	background-color: color-mix(in srgb, var(--pionyr__g), white 20%);
}

#content .tasks_list .one_task .task_state:hover:checked ~ .task_slider .slider_dot, #content .tasks_list .one_task .task_state:checked:focus ~ .task_slider .slider_dot {
	background-color: color-mix(in srgb, var(--pionyr__g), black 30%);
	transition: none;
}

#content .tasks_list .one_task .task_state:hover:checked ~ .task_slider, #content .tasks_list .one_task .task_state:checked:focus ~ .task_slider {
	background-color: color-mix(in srgb, var(--pionyr__g), white 10%);
	transition: none;
}

#content .tasks_list .one_task .task_state:checked ~ .task_slider .slider_dummy {
	flex-basis: 100%;
}

/* Google login */

#content .login_info {
	padding: calc(var(--base_num) * 2px);
	margin: auto;
	width: fit-content;
	position: absolute;
	top: 25%;
	left: 50%;
	transform: translate(-50%, -50%);

	border-radius: calc(var(--base_num) * 2px);
	background-color: var(--pionyr__b);
	color: var(--light_color);

	font-family: "Barlow", sans-serif;
	font-weight: 700;
	font-style: normal;
	font-size: 18px;
}

#content .login_info .login_form {
	width: fit-content;
	margin: auto;
}

#content .login_info .login_form form {
	width: fit-content;
}

#content .login_info .login_form input[type="submit"] {
	margin: calc(var(--base_num) * 2px);
	padding: calc(var(--base_num) * 1px);
	border: none;
	border-radius: calc(var(--base_num) * 2px);

	background-color: var(--pionyr__g);
	color: var(--dark_color);

	font-family: "Source Sans 3", sans-serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
	font-size: 16px;

	transition: 0.5s ease-out;
}

#content .login_info .login_form input[type="submit"]:hover, #content .login_info .login_form input[type="submit"]:focus {
	transition: 0.5s ease-out;
	transform: scale(1.05);
}

#content .login_info .login_form input[type="submit"]:active {
	transition: 0.5s ease-out;
	transform: scale(1.05);
	background-color: color-mix(in srgb, var(--pionyr__g), white 30%);
}

/* Tmavý motiv */
@media (prefers-color-scheme: dark) {
	html {
		--bg_color: #1e2021;
		--font_color: var(--light_color);
	}

	/* Postraní menu */
	#side_bar .pionyr_logo {
		background-image: url("/lib/img/logo_pionyr_white.svg");
	}

	#side_bar .made_by a:hover, #side_bar .made_by a:focus {
		color: color-mix(in srgb, var(--pionyr__b), white 20%);
	}

	#side_bar .made_by a:active {
		color: color-mix(in srgb, var(--light_color), black 30%);
	}

	#content {
		scrollbar-color: color-mix(in srgb, var(--font_color), black 40%) color-mix(in srgb, var(--bg_color), black 10%);
	}
}

/* Mobilní zobrazení */
@media only screen and (max-width: 768px) {
	body {
		margin: 0;
		padding: calc(var(--base_num) * 4px);
		height: calc(100vh - (var(--base_num) * 4px * 2));
		display: flex;
		flex-direction: column;

	}

	/* Postraní menu */
	#side_bar {
		margin-bottom: calc(var(--base_num) * 4px);
		display: flex;
		flex-direction: row;
		position: relative;
		overflow-y: unset;
	}

	#side_bar #isMenuOpen {
		margin-left: 25px;
		display: initial;
		width: 75px;
		position: relative;
		-webkit-appearance: none;
		appearance: none;
		background-color: var(--bg_color);
	}

	#side_bar .hidden_menu #isMenuOpen {
		display: none;
	}

	#side_bar #isMenuOpen:after {
		margin: 0 auto;
		content: "";
		display: inline-block;
		height: calc(var(--base_num) * 1px);
		width: 100%;
		position: absolute;
		left: 0;
		top: 0;
		border-radius: calc(var(--base_num) * 0.5px);
		background: transparent;
		box-shadow: 0px calc(var(--base_num) * 1px) 1px 0px var(--font_color), 0px calc(var(--base_num) * 1px + (var(--base_num) * 2px * 1)) 1px 0px var(--font_color), 0px calc(var(--base_num) * 1px + (var(--base_num) * 2px * 2)) 1px 0px var(--font_color);
	}

	#side_bar .menu_opener {
		display: none;
	}

	#side_bar #isMenuOpen:checked ~ .menu_opener {
		margin-top: calc(var(--base_num) * 4px);
		display: initial;
		width: 100%;
		height: 100vh;
		position: absolute;
		top: 100%;
		left: 0;
		background-color: var(--bg_color);
		z-index: 100;
	}

	/* Hlavní obsah */
	#content {
		padding: 0;
	}

	#content #page_description {
		margin-bottom: calc(var(--base_num) * 2px);
	}

	/* Seznam úkolů */
	#content .tasks_list .one_task {
		box-sizing: border-box;
	}

	#content .tasks_list .one_task {
		width: 100%;
	}

	#content .tasks_list .one_task .task_title:before {
		content: unset;
		display: none;
	}

	#content .tasks_list .one_task .task_state:checked ~ .task_title:before {
		content: unset;
	}
}

/* Změna kurzoru */
.loading * {
	cursor: progress !important;
}
