html,body,h1,h2,h3,h4,h5,h6
{
	font-family: "Roboto", sans-serif;
}

html, body
{
	margin: 0;
}

.page-title
{
	text-align: center;
	margin: 0;
	font-size: 300%;
}

.caption
{
	font-size: 66%;
    color: #888;
    vertical-align: text-top;
    margin: 0 10px;
}
.required
{
	color: red;
	font-weight: 600;
}
.caption .required
{
	font-weight: normal;
}

input[type=search]::-webkit-search-cancel-button
{
    -webkit-appearance: searchfield-cancel-button;
}

.scroll-h
{
	overflow-x: auto;
}
.scroll-v
{
	overflow-y: auto;
}

.float-right
{
	float: right;
}
.float-left
{
	float: left;
}
.float-clear
{
	clear: both;
}

@keyframes spinner
{
	0%		{transform: rotate(0deg);}
	25%		{transform: rotate(90deg);}
	50%		{transform: rotate(180deg);}
	75%		{transform: rotate(270deg);}
	100%	{transform: rotate(360deg);}
}

.spinner-box>*
{
	animation: spinner 2s infinite linear;
    font-size: 500%;
    padding: 10px;
    text-align: center;
    width: 100%;
}

/* The Modal (background) */
.modal
{
  display: none; /* Hidden by default */
  position: fixed; /* Stay in place */
  z-index: 100; /* Sit on top */
  padding-top: 200px; /* Location of the box */
  left: 0;
  top: 0;
  width: 100%; /* Full width */
  height: 100%; /* Full height */
  overflow: auto; /* Enable scroll if needed */
  background-color: rgb(0,0,0); /* Fallback color */
  background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
}

.modal h1
{
    text-align: center;
}

/* Modal Content */
.modal-content
{
  background-color: #fefefe;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate( -50%, -50%);
  padding: 20px;
  border: 1px solid #888;
  width: fit-content;
  max-width: 50%;
  min-width: 100px;
  max-height: 100%;
  overflow: auto;
}

/* The Close Button */
.modal .close
{
  color: #aaaaaa;
  float: right;
  font-size: 28px;
  font-weight: bold;
  margin-top: -15px;
}

.modal .close:hover,
.modal .close:focus
{
  color: #000;
  text-decoration: none;
  cursor: pointer;
}

input, select, textarea
{
	padding-left: 6px;
}

textarea
{
	resize: none;
}

label, input, button, select, textarea
{
	margin-right: 4px;
}

input, button, select, textarea
{
	border-color: grey;
    border-width: 1px;
    border-radius: 2px;
}

fieldset
{
	width: fit-content;
}

.notify-area fieldset
{
	display: inline-block;
}

.document-control
{
	font-size: 75%;
	margin: 0.5em;
}
.document-control span
{
	font-style: italic;
	font-weight: bold;
}

.impersonating
{
	margin-right: 0.5em;
}

.hidden
{
	display: none;
}

.hover-hidden
{
	visibility: hidden;
}
.hover-reveal:hover .hover-hidden
{
	visibility: visible;
}
.hover-obscured
{
	opacity: 0.25;
}
.hover-reveal:hover .hover-obscured
{
	opacity: 1.0;
}
.hover-click:hover, button:hover
{
	cursor: pointer;
}
.no-click:hover
{
	cursor:default;
}

.hover-hidden-large
{
	visibility: hidden;
}
.hover-reveal:hover .hover-hidden-large
{
	visibility: visible;
}

.show-password
{
	margin-left: -2em;
	margin-right: 1em;
}

.server-action
{
	display: inline-block;
	padding: 0 0.25em;
	border-radius: 4px;
	background-color: rgba(0,0,0,0.3);
}
.server-action p
{
	display: inline;
	font-size: 65%;
	margin-left: 0.5em;
}
.server-action::before
{
	content: '⚠';
	font-size: 110%;
}
body>.server-action
{
	color: white;
/*	font-weight: bold;*/
	background-color: #555;
}
body>.server-action p
{
	font-size: 125%;
}
body>.server-action::before
{
	font-size: 140%;
}

.text-centre	{ text-align: center; }
.text-right		{ text-align: right; }
.text-mono		{ font-family: monospace; }
.text-bold		{ font-weight: 600; }

.subheading
{
	font-weight: normal;
	font-style: italic;
}

.flex-container
{
	display: flex;
	flex-direction: column;
}
.flex-row
{
	display: flex;
	flex-direction: row;
    justify-content: space-between;
}
.flex-line
{
	flex-grow: 2;
}

.table {display:table}
.table-row, .table-row-header, .table-row-data {display:table-row}
.table-row-group {display:table-row-group}
.table-header {display:table-cell;font-weight:700;vertical-align:middle}
.table-header-group {display:table-header-group}
.table-body-group {display:table-row-group}
.table-footer-group {display:table-footer-group}
.table-column {display:table-column}
.table-column-group {display:table-column-group}
.table-cell {display:table-cell}

.table-cell-large, .table-header-large {display:table-cell}
.table-row-large {display:table-row;}

/* Extra small devices (phones, 600px and down) */
@media only screen and (max-width: 600px)
{
	.main-content
	{
		/*font-size: 120%;*/
	}
	
	.table-cell-small, .table-header-small {display:table-cell}
	.table-row-small {display:table-row;}
	
	.modal
	{
		padding-top: 0; /* Location of the box */
	}
	/* Modal Content */
	.modal-content
	{
		max-width: 100%;
		width: 100%;
		height: 100%;
		/* Add safe zones to the top and bottom for mobile */
		padding-top: 8em;
		padding-bottom: 8em;
	}
	
	.hover-hidden-large
	{
		visibility: visible;
	}
}

/* Small devices (portrait tablets and large phones, 600px and up) */
@media only screen and (min-width: 600px)
{
	.main-content
	{
		/*font-size: 110%;*/
	}
}

/* Medium devices (landscape tablets, 768px and up) */
@media only screen and (min-width: 768px)
{
	.main-content
	{
/*		font-size: 110%;*/
	}
}

/* Large devices (laptops/desktops, 992px and up) */
@media only screen and (min-width: 992px)
{
	.main-content
	{
/*		font-size: 100%;*/
	}
}

/* Extra large devices (large laptops and desktops, 1200px and up) */
@media only screen and (min-width: 1200px)
{
	
}

@media only print
{
	.no-print
	{
		display: none!important;
	}
	
	.main-content
	{
		margin: 0;
		padding: 0;
	}
	.w3-main
	{
		margin-left: 0!important
	}
}

@media only screen
{
	.print-only
	{
		display: none!important;
	}
}

@page
{
	margin: 0.5cm;
	size: A4;
	page-orientation: portrait;
}