
:root {
	--border-radius: 8px;
	--colour-1: #FF000E;
	--colour-2: #C400A6;

	--main-gradient: linear-gradient(to right, var(--colour-1), var(--colour-2));
}

body {
	margin: 0;
	font-size: 14px;
	font-family: sans-serif;
}

header {
	color: white;
	margin: 16px;
	padding: 16px;
	background: var(--main-gradient);
	border-radius: 12px;
}

header h1 {
	text-transform: uppercase;
	font-style: italic;
	text-align: left;
	font-size: 24px;
	margin: 4px 0 0;
}

header p {
	margin: 4px 0 0;
}

header .badges {
	margin-top: 8px;
	font-size: 16px;
	display: flex;
	gap: 8px;
}

header .badge {
	padding: 4px 8px;
	color: black;
	background: white;
	border-radius: 4px;
}


.timeslot-block {
	display: flex;
	justify-content: space-between;
	/*align-items: center;*/
	gap: 4px;
}

.timeslot-block .divider {
	min-width: 1px;
	height: 30px;
	background: grey;
	margin-top: 15px;
}

.messages {
	margin: 36px 0 0;
	padding: 0;
	text-align: center;
	list-style: none;
	font-family: sans-serif;
}

.msg {
	border-width: 1px;
	border-style: solid;
	padding: 15px;
	border-radius: 5px;
}

.messages .msg {
	padding: 10px;
}

.msg.error {
	background: #FFCCCC;
	border-color: #FF0000;
}

.msg.valid {
	background: #BBFFBB;
	border-color: #00FF00;
}

.msg + .msg {
	border-width: 0 1px 1px;
}

.msg:first-child {
	border-radius: var(--border-radius) var(--border-radius) 0 0;
}

.msg:last-child {
	border-radius: 0 0 var(--border-radius) var(--border-radius);
}

.msg:first-child:last-child {
	border-radius: var(--border-radius);
}

h1 {
	text-align: center;
	font-family: sans-serif;
}

form {
	margin: 36px 0 0;
}

.neat-form {
	--button-colour: #FF4433;
	--button-outline: #000000;
	--button-colour-shade: #DD3425;
	--button-text: #FFFFFF;
	--neutral-background-colour: #EEEEEE;
	--border-radius: 8px;

	font-family: sans-serif;
	font-size: 14px;
	margin: 16px;
	box-sizing: border-box;
}

.neat-form *,
.neat-form *::before,
.neat-form *::after {
	box-sizing: inherit;
}

/* margins */
.neat-form button,
.neat-form input,
.neat-form select,
.neat-form label,
.neat-form .datepicker {
	margin-top: 5px;
}

.neat-form .datepicker {
	display: inline-block;
	width: 100%
}


/* outlines */
.neat-form input:focus,
.neat-form select:focus {
	outline: var(--button-colour) 2px solid;
}

.neat-form button:focus,
.neat-form input[type=submit]:focus {
	outline: var(--button-outline) 2px solid;
}

.neat-form input.error:focus,
.neat-form select.error:focus {
	outline: red 2px solid;
}

/* hover states */
.neat-form button:hover,
.neat-form input[type=submit]:hover,
.neat-form input[type=file]::file-selector-button:hover {
}


/* buttons and button-like elements */
.neat-form button,
.neat-form input[type=submit],
.neat-form input[type=file]::file-selector-button {
	border: none;
	background: var(--main-gradient);
	color: var(--button-text);
	padding: 9px 14px;
	border-radius: var(--border-radius);
	cursor: pointer;
}

.neat-form button:disabled,
.neat-form input[type=submit]:disabled,
.neat-form input[type=file]:disabled::file-selector-button {
	cursor: default;
	background: lightgrey;
	color: black;
}

.neat-form input[type=submit].submitting {

}

/* text fields */
.neat-form input[type=email],
.neat-form input[type=text],
.neat-form input[type=password] {
	border-radius: var(--border-radius);
	padding: 5px 10px;
	border: 1px solid grey;
}

/* popup/dropdowns */
.neat-form select,
.neat-form input[type=date] {
	background: var(--neutral-background-colour);
	border-radius: 4px;
	border: 1px solid var(--colour-1);
	padding: 5px 10px;
}

/* files */
.neat-form input[type=file] {
	background: var(--neutral-background-colour);
	border-radius: var(--border-radius);
	padding: 0 10px 0 0;
}

.neat-form input[type=file]::file-selector-button {
	margin: 0 10px 0 0;
}

/* fieldset */
.neat-form fieldset {
	border: 1px solid grey;
	border-radius: var(--border-radius);
	margin: 5px 0 0 0;
	padding: 10px;
}

fieldset div {
	margin-top: 5px;
}

.neat-form label,
.neat-form .label {
	display: block;
}

.neat-form label.expand-input {
	display: flex;
	gap: 5px;
	flex-wrap: wrap;
	align-items: baseline;
}

.neat-form label.expand-input input,
.neat-form label.expand-input select {
	flex-grow: 1;
}

.neat-form .error {
	font-size: .8em;
	color: darkred;
}

.neat-form .error p {
	margin: 0;
}

.neat-form .label-info {
	/*font-size: .8em;*/
}

.loading {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 5px;
}

.hidden {
	display: none;
}

.timeslot-block {
	margin: 20px 0;
}

.cell select,
.cell input[type=date] {
	width: 100%;
}

.cell-channel,
.cell-time {

}

.cell-week {
}

.input-hidden {
	position: absolute;
	opacity: 0;
	cursor: pointer;
	height: 0;
	width: 0;
}

.datepicker {
	background: var(--neutral-background-colour);
	border-radius: 4px;
	border: 1px solid var(--colour-1);
	padding: 5px 10px;
}

.input-hidden:focus + .datepicker {
	outline: var(--button-colour) 2px solid;
}

.label-info {
	text-align: center;
}

button.discreet {
	background: transparent;
	color: black;
	padding: 0;
	border-radius: 0;
}

.neat-form input.discreet {
	border: 0;
}


.throbber {
	display: block;
	width: 30px;
	height: 30px;
	border-radius: 100%;
	animation: rotate .8s linear infinite;
	border-top: 2px solid lightgrey;
	border-right: 2px solid white;
	border-bottom: 2px solid lightgrey;
	border-left: 2px solid white;

}

.flex-right {
	display: flex;
	justify-content: flex-end;
}

.spaced {
	margin: 40px 0;
}

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

footer {
	margin: 16px;
}

footer hr {
	border: 0;
	border-top: 1px solid grey;
}

.footer-links {
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer-links li {
	margin-top: 5px;
}

.footer-links a {
	color: #333333;
	text-decoration: none;
}

.footer-links a:hover,
.footer-links a:focus {
	background-clip: text;
	color: transparent;
	background: var(--main-gradient);
	-webkit-background-clip: text;
	background-clip: text;

}
