@import url('https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200');

:root {
	--dark-grey: #222222;
	--mid-grey: #888888;
	--light-grey: #aaaaaa;
	--lightest-grey: #eeeeee;
	--error: #d13b34;
	--warning: #ee893f;
	--success: #5f9e46;

	--border-radius: 8px;

	--font-x-small: 10px;
	--font-small: 12px;
	--font-normal: 16px;
	--font-large: 20px;
	--font-x-large: 24px;
}

html {
	font-family: "Noto Sans", sans-serif;
	font-size: var(--font-normal);
	font-weight: 400;
	margin: 0px;
	padding: 0px;
	padding-bottom: 16px;
	border: 0px;
	color: var(--dark-grey);

	text-size-adjust: none;
	-webkit-text-size-adjust: none;
	-moz-text-size-adjust: none;
	-ms-text-size-adjust: none;

/*	word-break: break-all;*/
}

body {
	margin: 0px;
	padding: 0px;
	border: 0px;
	color: var(--dark-grey);
}

label {
	font-size: var(--font-small);
	margin: 0px;
	padding: 0px;
}

/**/

h2 {
	margin: 0px;
	font-weight: 700;
	font-size: var(--font-x-large);
	color: var(--dark-grey);
}

hr {
	height: 1px;
	background-color: var(--light-grey);
	border: 0px;
	margin: 8px 0px;
}

form hr {
	height: 1px;
	background-color: var(--lightest-grey);
	border: 0px;
	margin: 8px 0px;
}

/**/

strong {
	font-weight: 600;
}

b {
	font-weight: 800;
}

/**/

input {
	font-family: "Noto Sans", sans-serif;
	font-size: var(--font-small);
	padding: 0px 12px 0px 12px;
	margin: 0px;
	border: 0px;
	font-weight: 400;
	width: 100%;
	min-height: 48px;
	outline: 1px solid var(--light-grey);
	outline-offset: -1px;
	border-radius: var(--border-radius);
        transition: outline .4s;
}

input:hover {
	outline: 1px solid var(--mid-grey);
}

input:focus {
	outline: 1px solid var(--dark-grey);
}

.has-danger input {
	outline: 1px solid var(--error);
}

input[type=checkbox] {
	width: unset;
	min-height: unset;
	outline: unset;
}

/**/

button {
	font-family: "Noto Sans", sans-serif;
	font-size: var(--font-small);
	padding: 12px;
	margin: 0px;
	border: 0px;
	font-weight: 800;
	width: 100%;
	min-height: 48px;
	outline: 1px solid var(--light-grey);
	outline-offset: -1px;
	border-radius: var(--border-radius);
	background-color: #fff;
	transition: outline .25s, background-color .25s;
	cursor: pointer;
	color: var(--dark-grey);
	user-select: none;
}

button:hover {
	outline: unset;
	background-color: var(--light-grey);
	color: var(--dark-grey);
}

button:focus {
	outline: unset;
	background-color: var(--dark-grey);
	color: #fff;
}

button:disabled,
button:disabled:hover,
button:disabled:focus {
	outline: unset;
	background-color: var(--dark-grey);
	color: #fff;
	cursor: unset;
}

button[type=submit] {
	margin-top: 8px;
}

/**/

.form-checkbox {
	display: grid;
	grid-template-columns: auto min-content;
	padding: 16px;
	outline: 1px solid var(--lightest-grey);
	outline-offset: -1px;
	border-radius: 8px;
	gap: 16px;
}

.form-group {
	padding-bottom: 8px;
}

.pristine-error {
	background-color: var(--error);
	border-radius: var(--border-radius);
	padding: 8px;
	color: #fff;
	font-size: var(--font-x-small);
	margin-top: 8px;
	font-weight: 600;
	text-align: right;
}

.passwords-unequal {
	background-color: var(--warning);
	border-radius: var(--border-radius);
	padding: 8px;
	color: #fff;
	font-size: var(--font-x-small);
	margin-top: 8px;
	font-weight: 600;
	text-align: right;
}

/**/

.menu {
	position: absolute;
	background-color: var(--lightest-grey);
	padding: 8px;
	top: 0px;
	left: 0px;
	width: 48px;
	max-width: 48px;
	display: grid;
	gap: 8px;
	grid-template-rows: repeat(auto, max-content);
	border-radius: 0px 12px 12px 0px;
	margin-top: 8px;
}

.menu button {
	width: 48px;
}

.menu hr {
	margin: 0px !important;
}

.module {
	margin-left: 64px;
	padding: 8px 16px;
}
