
html {
	overflow-y: scroll;
}

body {
	margin: 0;
	padding: 0;
	color: #000;
	background-color: #fff;
}

h1, h2, h3, h4 {
	font-family: georgia, times new roman, serif;
	color: #99c;
	margin: 0.5em 0;
}

h1 {
	font-size: 200%;
}

h2 {
	font-size: 150%;
	color: #d99;
}

h3 {
	font-size: 125%;
}

h4 {
	font-size: 110%;
	color: #d99;
}

h5 {
	font-size: 105%;
	color: #999;
	margin: 0.5em 0;
}

p {
	padding: 0 0 0.5em 0;
}

blockquote {
	margin: 1em 2em;
}

pre {
	padding: 0.5em;
}

iframe {
	width: 100%;
	height: 100%;
	border: none;
}

input, textarea, select, button {
	font-family: tahoma, lucida sans, verdana, sans-serif;
	font-size: 100%;
	margin: 0 0.1em 0 0.1em;
}

input[type="radio"], input[type="checkbox"] {
	vertical-align: middle;
}

header {
	border-bottom: 1px solid #eee;
}

footer {
	border-top: 1px solid #eee;
	text-align: center;
	clear: both;
}

hr {
	border: none;
	height: 1px;
	background-color: #ccc;
}

label {
	padding-left: 0.3em;
	padding-right: 3em;
}

li label {
	display: block;
}

td label {
	display: inline;
}

a, a:visited {
	color: #009;
	text-decoration: none;
}

a:hover {
	color: #d00;
	text-decoration: underline;
}

ul, ol {
	padding-left: 1em;
	margin: 1em 0.1em;
}

li {
	margin-left: 0.3em;
	margin-bottom: 0.3em;
}

dt {
	font-weight: bold;
}

dd {
	margin-top: 0.6em;
	margin-bottom: 2em;
	margin-left: 3em;
}

table {
	margin: 1em 0;
	font-size: 100%;
}

tr.even {
	background-color: #eee;
}

tr.odd {
	background-color: #ddd;
}

tr.hilighted {
	background-color: #fdd;
}

th, td {
	text-align: left;
	font-weight: normal;
	padding: 0.2em 0;
}

table.simple th, table.simple td {
	padding-left: 0.7em;
	padding-right: 1.5em;
	padding-bottom: 2px;
}

td.label {
	text-align: right;
	color: #777;
	padding-right: 0.5em;
}

.ralign {
	text-align: right;
}

.lfloat {
	float: left;
}

.rfloat {
	float: right;
}

.clearfloat {
	clear: both;
}

.hidden {
	display: none;
}

.brokenwhite {
	background: #ffe;
}

.indented {
	margin-left: 1em;
}

#container {
	margin: 0;
	padding: 0;
	border: none;
	text-align: center;
}

#main {
	position: relative;
	max-width: 58em;
	text-align: left;
	margin: 0 auto;
	color: #000;
	background: #fff;
}

.head, .tail {
	font-style: italic;
	text-align: right;
	color: #77A;
}

.head {
	color: #99c;
	margin-top: 0.1em;
	padding-top: 0.1em;
}

h2.title {
	color: #e99;
	padding-left: 0.5em;
	padding-bottom: 0.1em;
	border-bottom: 1px solid #e99;
}

.warning {
	display: block;
	border-top: 1px solid #ccc;
	border-bottom: 1px solid #ccc;
	padding: 0.5em 1em;
	margin: 1em 0em;
	text-align: center;
	background: #ffd;
}

.hint, .tip {
	clear: both;
	border-top: 1px solid #ccc;
	border-bottom: 1px solid #ccc;
	padding: 0.3em 1em;
	margin: 1.4em 0em;
	background-color: #eef;
	display: block;
}

.hint ul, .tip ul {
	margin: 0em 0.1em;
}

.hint li, .tip li {
	margin-bottom: 0.1em;
}

.sync {
	border-top: 1px solid #ccc;
	border-bottom: 1px solid #ccc;
	padding: 0.5em 1em;
	margin: 2em 0em;
	text-align: center;
	background: #ffd;
	clear: both;
}

.devnote {
	font-family: georgia, times new roman, serif;
	font-style: italic;
	color: #707;
	margin: 2em 0;
	padding-top: 0.3em;
	padding-left: 0.5em;
	border-top: 1px solid #dad;
}

.alerts, .alert, .error, .log {
	font-family: verdana, sans-serif;
	font-size: 85%;
	line-height: 1.2em;
	padding: 0.5em 0.7em;
	text-align: left;
	white-space: pre-wrap;
}

.alerts, .alert, .log {
	color: white;
	background-color: #447;
	border: 1px solid #ccc;
}

.alerts .prefix, .alert .prefix {
	color: yellow;
	white-space: pre;
	display: block;
}

.alerts .stack, .alert .stack {
	color: silver;
	white-space: pre;
	display: block;
}

.error {
	color: black;
	background-color: yellow;
	border: 2px solid blue;
	white-space: pre;
}

.log {
	height: 7em;
	overflow-y: scroll;
}

.debug {
	border-top: 1px solid #ccc;
	border-bottom: 1px solid #ccc;
	padding: 1em 0em;
	margin: 2em 0em;
}

.hilighted {
	border-color: #555;
}

.hilighted b {
	color: #c00;
}

.comment {
	color: #777;
	margin: 0.5em 0;
	padding: 0 0.2em;
	font-style: italic;
}

table.thin {
	margin: 0;
	padding: 0;
	border: none;
}

table.thin td {
	margin: 0;
}

input[type="text"], input[type="search"], input[type="password"], input[type="url"], input[type="email"], textarea,
span.text input, span.text textarea,
span.dropdown select /* input.mandatory, textarea.mandatory, select.mandatory */ {
	border: 1px solid #ddd;
	padding: 2px 2px;
}

span.text input.incomplete, span.text textarea.incomplete, span.dropdown select.incomplete,
input.incomplete, textarea.incomplete, select.incomplete {
	border-color: #f99;
}

/* hum/todo: nodots is only used in flow-modeller to suppress bullets of the menu_list */

.nodots {
	padding: 0.2em 0;
}

.nodots ul {
	list-style-type: none;
	padding: 0;
	margin: 0;
}

.nodots ul li {
	padding: 0;
	margin-left: 0;
}

/* hum/todo: the tabsheet classes are not set by any part, but defined in the flow */

.tabsheet, .tabsheet2 {
	display: none;
	padding: 0.3em;
}

.tabsheet2 {
	border-left: 1px solid #ccc;
	border-right: 1px solid #ccc;
	border-bottom: 1px solid #ccc;
	min-height: 5em;
}

/* default widths for various types of inputs */

input:not([size])[type="text"] {
	width: 17em;
}

input:not([size])[type="password"] {
	width: 17em;
}

input:not([size])[type="search"] {
	width: 12em;
}

input:not([size])[type="email"] {
	width: 28em;
}

input:not([size])[type="file"] {
	width: 17em;
}

input:not([size])[type="url"] {
	width: 28em;
}

/* end of input width defaults */

/* --- part specific classes --- */
/* --- ui parts --- */

/* ui/actionbar */

div.actionbar ul {
	margin: 0;
	list-style-type: none;
/*	min-height: 33em;*/
}

div.actionbar ul li {
	color: #339;
	padding-left: 0.5em;
	padding-top: 1px;
	padding-bottom: 1px;
	margin: 0 0 0.1em 0;
	border-top-left-radius: 8px;
	border-bottom-left-radius: 8px;
}

div.actionbar ul li.header {
	color: #ccf;
	padding-top: 0.1em;
}

div.actionbar ul li + li.header {
	margin-top: 1em;
}

div.actionbar ul li.enabled:hover {
	background-color: #f0f0ff;
	cursor: pointer;
}

div.actionbar ul li.disabled {
	color: #dde;
}

div.actionbar ul li input {
	margin-left: -0.5em; /* counteract padding-left on li */
	width: 100%;
}

/* ui/announcement */

div.announcement {
	background-color: yellow;
	margin: 0.7em 0;
	padding: 0.3em 0.7em;
}

/* ui/button */

span.button a {
	text-decoration: underline;
}

/* ui/calendar */

div.ui_calendar {
	margin: 1em 0;
}

div.ui_calendar div.nav {
	margin: 0.5em 0 0.7em 0;
}

div.ui_calendar div.nav input[type=button] {
	padding: 0.2em 0.5em;
}

div.ui_calendar select.period {
	padding: 0.2em 0.5em 0.2em 0;
}

div.ui_calendar div.year {
	display: flex;
	flex-wrap: wrap;
	column-gap: 1em;
	row-gap: 1em;
}

div.ui_calendar div.year div {
	flex-grow: 1;
}

div.ui_calendar div.month {
	display: grid;
	grid-template-columns: 2em repeat(7, 1fr);
	justify-items: stretch;
	max-width: 24em;
}

div.ui_calendar div.week {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	justify-items: stretch;
	max-width: 24em;
}

div.ui_calendar div.date {
	font-size: 125%;
	color: #6d6dbf;
	margin-bottom: 0.5em;
}

div.ui_calendar div.wk,
div.ui_calendar div.wd,
div.ui_calendar div.d {
	text-align: center;
	padding: 0.5em;
}

div.ui_calendar div.wk {
	color: #6d6dbf;
	padding: 0.5em 0;
	border: 1px solid #fff;
}

div.ui_calendar div.wd {
	color: #6d6dbf;
}

div.ui_calendar div.d {
	position: relative;
	cursor: pointer;
	background-color: #f8f8f8;
	border: 1px solid #fff;
	user-select: none;
}

div.ui_calendar div.d:hover {
	background-color: #eee;
}

div.ui_calendar div.d.current {
	background-color: #d7eecb;
}

div.ui_calendar div.d.selected {
	z-index: 2;
	outline: 3px double #819f00;
	outline-offset: -4px;
}

div.ui_calendar div.d.busy::after {
	content: "";
	position: absolute;
	bottom: 0;
	right: 0;
	border-left: 14px solid transparent;
	border-bottom: 14px solid #819f00;
}


div.ui_calendar div.d.out {
	color: #bbb;
	cursor: initial;
}

div.ui_calendar div.d.out:hover {
	background-color: #f8f8f8;
}

/* ui/data_grid */

div.data_grid table {
	border: 1px solid #ddd;
	margin: 0.5em 0px 4px 0px;
	width: 34em; /* hum? */
}

div.data_grid table tr th {
	background-color: #99c;
	color: #fff;
	text-align: left;
	font-weight: normal;
}

div.data_grid table tr td, div.data_grid table tr th {
	padding-left: 0.5em;
	padding-right: 1.5em;
	padding-bottom: 2px;
	/*vertical-align: top;*/
}

div.data_grid table tr th.sortable {
	cursor: pointer;
	font-weight: bold; /* hum/temp? */
}

div.data_grid table tr th.sortable.asc:before {
	content: "\2193\00a0";
}

div.data_grid table tr th.sortable.desc:before {
	content: "\2191\00a0";
}

div.data_grid table * td {
	cursor: pointer;
}

div.data_grid table tr.emptycaption td,
div.data_grid table tr.emptyrow td {
	cursor: default;
}

div.pager input.nav {
	padding-left: 0.4em;
	padding-right: 0.4em;
	width: 2.5em;
}

div.pager span.pagenr {
	padding-left: 0.5em;
	padding-right: 0.5em;
}

div.pager span.pagenr i {
	font-size: 75%;
	color: #aaa;
}

/* ui/dialog */

dialog {
	max-width: 80%;
	border: none;
	box-shadow: 0 0 1em rgb(0 0 0 / .3);
}

dialog div.dialog-message {
}

dialog div.dialog-actions {
	margin-top: 1em;
}

dialog::backdrop {
}

/* ui/explanation */

div.explanation a.question {
	padding: 2px 5px;
}

div.explanation a.question:hover {
	text-decoration: none;
}

div.explanation div.answer {
	display: none;
	margin-top: 0.2em;
	padding: 0.2em 5px;
	background-color: #fff6bf;
	border: 1px solid #ffd324;
	text-align: left;
}

div.explanation div.answer.opened {
	display: block;
}

div.explanation p {
	padding: 0.5em 0 0.5em 0;
}

/* ui/grid_editor */

div.grid_editor table {
	font-size: 90%;
	background: white;
	padding: 1px 1px 1px 1px;
	border-spacing: 1px 1px;
	border-bottom: 1px solid #ccc;
	border-top: 1px solid #ccc;
}

div.grid_editor table tr.odd {
	background-color: #eee;
}

div.grid_editor table tr.even {
	background-color: #fff;
}

div.grid_editor table input {
	font-size: 100%;
	border: none;
	width: 3em;
	text-align: right;
	background-color: #ffd;
	padding: 0;
	margin: 0;
}

div.grid_editor table td.label input {
	width: 100%; /*5em;*/
	text-align: left;
}

div.grid_editor table td.header {
	font-weight: bold;
	text-align: right;
	padding-left: 0.7em;
	padding-right: 0.3em;
	color: #33a;
	cursor: pointer;
}

div.grid_editor table td.label {
	text-align: left;
	min-width: 6em;
	padding-left: 0.5em;
	padding-right: 2em;
	white-space: nowrap;
	color: #33a;
	cursor: pointer;
}

div.grid_editor table td.data {
	text-align: right;
	min-width: 4em;
	padding-left: 0.5em;
	padding-right: 0.3em;
}

div.grid_editor.menu {
	border: 1px solid #ccc;
	border-left: 3px solid #aae;
	padding: 3px 3px;
	display: none;
	position: absolute;
	color: black;
	background: #fff;
	line-height: 1.5em;
	width: 7em;
}

div.grid_editor.menu a {
	color: black;
	background: white;
	display: block;
	text-decoration: none;
	padding-left: 0.5em;
	padding-right: 0.9em;
	margin-left: 0;
	margin-right: 0;
}

div.grid_editor.menu a:hover {
	color: white;
	text-decoration: none;
	background: #99c;
}

/* ui/help */

div.help {
	position: relative;
	background-color: #fff;
	font-family: tahoma, lucida sans, verdana, sans-serif;
	width: 99%;
	min-height: 20em;
	border: 1px solid #ccd;
	border-top: none;
	padding: 0em;
	margin: 0 auto;
	border-radius: 0 0 15px 15px;
	-moz-border-radius: 0 0 15px 15px;
	-webkit-border-radius: 0 0 15px 15px;
	display: none;
}

div.help div.navigation {
	float: left;
	padding: 0.4em 0 0 0.5em ;
}

div.help div.close {
	font-size: 150%;
	float: right;
	padding-right: 0.3em;
}

div.help div.close a {
	text-decoration: none;
}

div.help div.header {
	clear: both;
	font-family: georgia;
	font-size: 120%;
	color: #009;
	background-image: linear-gradient(to bottom, #eaf1ff 0%, #fff 100%);
	padding: 0.4em;
}

div.help div.contents {
	color: #555;
	margin: 0.5em;
	overflow-y: auto;
	height: 16em;
}

div.help div.footer {
	border-top: 1px solid #ddd;
	margin: 0.5em;
	padding: 0.3em 0 0 0;
}

div.help ul {
	color: #777;
}

div.help ul.topics {
	padding: 0.5em 0 0.5em 1em;
}

div.help ul.tags {
	display: inline;
	padding-left: 0;
	margin: 0;
}

div.help ul.tags li {
	display: inline;
	padding: 0 0.3em 0 0;
	margin: 0;
}

div.help a {
	color: #77c;
}

div.help ul.tags a {
	color: #c77;
}

/* ui/image */

span.image a {
	text-decoration: none;
}

/* ui/jobs */

div.jobs {
	font-family: tahoma, lucida sans, verdana, sans-serif;
	color: #99a;
	background-color: #fff;
	position: relative;
	padding: 3px 0.4em;
	border-top: 1px solid #dde;
	border-bottom: 1px solid #dde;
}

div.jobs ul {
	display: inline;
	padding: 0;
}

div.jobs ul li {
	display: inline;
	list-style: none;
	margin: 0 0.3em 0 0;
	padding: 0;
}

/* ui/list  -- hum/todo: just an experimental part, what to do with the class? */

div.list {
	overflow-y: scroll;
	height: 30em;
}

/* ui/login */

div.login table {
	margin: 1em;
}

div.login table td.label {
	text-align: right;
}

/* ui/menu */
div.menu {
	display: inline-block;
	position: relative;
}

div.menu div.menu__title {
	cursor: pointer;
}

div.menu ul {
	display: none;
	position: absolute;
	background-color: #fff;
	margin: 0;
	padding: 0.3em 0.5em;
	border: 1px solid #ddd;
	list-style-type: none;
	box-shadow: 1px 2px 3px 0px rgba(33,33,33,0.1);
}

div.menu.opened ul {
	display: block;
}

div.menu.opened ul li {
	cursor: pointer;
	margin: 0;
	padding: 0.2em 0;
}

div.menu ul li.disabled {
	color: #ddd;
	cursor: default;
}

/* ui/menu_list */

div.menu_list {
	margin-top: 0.2em;
	margin-bottom: 0.3em;
	padding: 0.2em 0.2em;
}

div.menu_list ul {
	margin: 0;
	padding: 0;
	padding-left: 1em;
	color: #777;
}

div.menu_list li {
	margin: 0.20em 0 0.10em 0;
	padding: 0;
	clear: both;
}

div.menu_list div.header {
	font-size: 150%;
	color: #999;
	width: 14em;
	border-bottom: 1px solid #ddd;
	padding-left: 0.2em;
	padding-bottom: 0.2em;
	margin-top: 0.7em;
	margin-bottom: 0.3em;
}

/* ui/message2 */

div.message2.hidden {
	display: none;
}

div.message2::before {
	position: absolute;
}

div.msg-success ul,
div.msg-failure ul,
div.msg-question ul,
div.msg-warning ul {
	margin: 0em 0.1em;
}

div.msg-success,
div.msg-failure,
div.msg-question,
div.msg-warning {
	color: #777;
	position: relative;
	padding: 0.3em 1em 0.3em 1.5em;
	margin: 0.5em;
}

div.msg-warning::before,
div.msg-failure::before,
div.msg-question::before {
	top: -6px;
	left: -10px;
	line-height: 1.3;
	font-family: georgia, serif;
	font-size: 150%;
	font-style: normal;
	font-weight: bold;
	color: #fff;
	margin: 3px 0.2em;
	vertical-align: middle;
}

div.msg-warning::before {
	content: "!";
	background-color: #777;
	padding: 0px 6px;
}

div.msg-failure::before {
	content: "\2716";
	left: -8px;
	font-family: arial, sans-serif;
	font-size: 100%;
	background-color: #777;
	padding: 5px 5px 4px 3px;
}

div.msg-question::before {
	content: "?";
	background-color: #777;
	padding: 0px 0.2em;
}

div.msg-success::before {
	content: "";
	/* position the checkbox */
	left: 0px;
	top: 6px;
	/* setting the checkbox */
	/* short arm */
	width: 5px;
	border-bottom: 3px solid #777;
	/* long arm */
	height: 11px;
	border-right: 3px solid #777;
	/* rotate the mirrored L to make it a checkbox */
	transform: rotate(45deg);
	-o-transform: rotate(45deg);
	-ms-transform: rotate(45deg);
	-webkit-transform: rotate(45deg);
}

/* ui/multi_answer and ui/single_answer */

div.single_answer table, div.multi_answer table {
	margin: 0.5em 1em;
}

/* ui/number */

span.number input[type="text"] {
	text-align: right;
}

/* ui/object */

div.object table td {
	/*vertical-align: middle;*//* redundant? */
}

div.object table input[type="text"], div.object table select {
	padding-left: 4px;
	padding-right: 4px;
}

div.object table a.edit {
	margin-left: 0.7em;
	padding-left: 0.3em;
	border-left: 1px solid #ddd;
}

/* ui/progress */

span.progress span.done {
	color: #2c2;
}

span.progress span.left {
	color: #cec;
}

/* ui/properties */

div.properties {
	margin: 0 0 1em 0;
}

div.properties table {
	margin: 0;
}

div.properties th {
	font-weight: bold;
	padding-left: 0.25em;
}

div.properties td {
	padding: 0px;
}

div.properties td.key input, div.properties td.readonly {
	width: 12em;
	border: 1px solid #eee;
}

div.properties td.value input.entry {
	border: 1px solid #eee;
}

div.properties td.value input.command, input.command {
	/*vertical-align: middle;*//* redundant? */
	text-align: center;
}

div.properties tr.new {
	height: 2.5em;
}

div.properties input.entry, div.properties input.generic, div.properties textarea.generic {
	/*vertical-align: top;*//* redundant? */
	border: 1px solid #eee;
}

div.properties textarea.generic {
	height: 8em;
}

/* ui/qutext -- hum/todo: move to jbeheer.css? */

div.qutext {
	width: 28em;
}

div.qutext input[type="text"] {
	width: 100%;
	/* margin: 0;
	padding: 0; */
}

div.qutext div.list {
	width: 100%;
	border: 1px solid #ddf;
	border-top: none;
	margin: 0;
	padding: 1px;
	padding-bottom: 0;
	display: none;
}

div.qutext * select {
	font-family: tahoma, lucida sans, verdana, sans-serif;
	font-size: 100%;
	height: 100%;
	width: 100%;
	margin: 0;
	padding: 0;
	border: none;
}

div.qutext * option {
	margin: 1px;
	color: #559;
}

/* ui/range_grid */

div.range_grid table {
	margin: 1em 0;
	width: 44em;
}

div.range_grid table th {
	text-align: center;
	min-width: 3em;
}

div.range_grid table tr.odd {
	background-color: #fff;
}

div.range_grid table tr.even {
	background-color: #fff;
}

div.range_grid table input {
	margin: 0;
	padding-left: 0.5em;
	padding-right: 0.5em;
}

div.range_grid table label {
	z-index: -20;
	font-size: 180%;
	padding-left: 15%;
	padding-right: 15%;
	vertical-align: middle;
}

div.range_grid table label.left {
	margin-right: -0.2em;
}

div.range_grid table label.right {
	margin-left: -0.2em;
}

div.range_grid table td {
	text-align: center;
	white-space: nowrap;
	/*vertical-align: middle;*//* redundant? */
	border-top: 1px solid #ddd;
}

div.range_grid table td.rlabel {
	text-align: left;
	padding: 0.2em 3em 0.2em 1em;
}

div.range_grid table td.input {
	width: 2em;
}

div.range_grid table td.start {
	font-size: 85%;
	color: #777;
	width: 15em;
	text-align: right;
	padding-left: 2em;
}

div.range_grid table td.stop {
	font-size: 85%;
	color: #777;
	width: 15em;
	text-align: left;
	padding-right: 2em;
}

/* ui/render_list */

div.render_list div.popup_menu {
	border: 1px solid #ccc;
	border-left: 3px solid #bbd;
	padding: 3px 3px;
	display: none;
	position: absolute;
	color: black;
	background: #fff;
	line-height: 1.4em;
	white-space: nowrap;
}

div.render_list div.popup_menu a, div.render_list div.popup_menu a:visited {
	display: block;
	color: black;
	background: white;
	text-decoration: none;
	padding-left: 0.3em;
	padding-right: 0.9em;
	margin-left: 0;
	margin-right: 0;
}

div.render_list div.popup_menu a:hover {
	color: white;
	background: #99c;
	text-decoration: none;
}

/* ui/record_editor */

div.record-editor {
	margin: 1em 0;
}

div.record-editor div.record {
	display: flex;
	gap: 0.2em;
	align-items: baseline;
	margin-bottom: 0.2em;
}

div.record-editor div.record select {
	margin: 0;
	border: 1px solid #ddd;
	padding-bottom: 1px;
	max-width: 16em;
	overflow: hidden;
	text-overflow: ellipsis;
}

div.record-editor div.record select.incomplete {
	border: 1px solid #f99;
}

div.record-editor div.record div.field .header {
	margin-bottom: 0.3em;
}

div.record-editor div.record div.field .literal {
	padding: 0 0.5em;
}

div.record-editor div.record div.field .text {
}

div.record-editor div.record div.field .dropdown {
}

div.record-editor div.record div.field .number {
	text-align: right;
	max-width: 3em;
}

/* ui/stepbuttons */

div.stepbuttons {
	padding: 0;
	margin: 1em 0 1em 0;
}

div.stepbuttons .goforward {
	margin-left: 0;
	margin-right: 0;
}

div.stepbuttons .gobackward {
	margin-left: 0;
	margin-right: 0;
}

/* ui/sqltree and ui/vfstree */

div.sqltree, div.vfstree {
	position: relative;
	font-family: tahoma, verdana, sans-serif;
	font-size: 90%;
	border: 1px solid #eee;
	width: 22em;
	height: 28em;
	padding: 1px;
	overflow-y: auto;
	overflow-x: hidden;
	float: left;
	margin: 0em 1em 2em 0em;
}

div.sqltree div.node, div.vfstree div.node {
	position: relative;
	border: 1px solid #ddd;
	margin: 1px 0px 1px 1px;
	padding: 1px 2px;
	padding-left: 18px;
	width: 100%; /* sets IE's layout and prevents rendering issues[!] (other properties might work as well) */
	cursor: pointer;
}

div.sqltree div.node::after, div.vfstree div.node::after {
	content: "+";
	position: absolute;
	left: 0.3em;
	top: 0.3em;
	width: 1em;
	padding: 0;
	margin: 0;
	font-size: 65%;
	font-weight: bold;
	text-align: center;
	background-image: linear-gradient(to bottom, #fff 30%, #ddd 100%);
	border: 1px solid #999;
}

div.sqltree div.node i {
	color: #99a;
}

div.sqltree div.opened::after, div.vfstree div.opened::after {
	content: "\2212";
}

div.sqltree div.leaf {
	cursor: default;
}

div.sqltree div.leaf::after {
	display: none;
}

div.sqltree div.selected {
	font-weight: 700;
}

div.sqltree div.caption, div.vfstree div.caption {
	display: inline;
	cursor: pointer;
}

div.sqltree div.nodes, div.vfstree div.nodes {
	margin: 3px -4px -3px -5px;
}

div.vfstree div.folder div.caption {
	color: #c55;
}

div.vfstree div.file {
	padding-left: 3px;
}

/* ui/tab_control */

div.tab_control {
	font-family: tahoma, lucida sans, verdana, sans-serif;
	font-size: 100%;
	margin: 0;
	border-bottom: 1px solid #ccc;
}

div.tab_control ul {
	list-style: none;
	margin: 0;
	padding: 0.2em 0.2em 0.2em 0.2em;
}

div.tab_control li {
	position: relative;
	display: inline;
	list-style: none;
	padding: 0.1em 0.3em 0.2em 0.3em;
	margin: 0.1em;
	white-space: nowrap;
	border: 1px solid #ccc;
	border-radius: 8px 8px 0 0;
	-moz-border-radius: 8px 8px 0 0;
	-webkit-border-radius: 8px 8px 0 0;
}

div.tab_control li.selected {
	z-index: 1;
	color: #000;
	background-color: #fff;
	border-bottom: 1px solid #fff;
}

div.tab_control li.deselected {
	color: #33a;
	background-color: #f4f4f4;
	cursor: pointer;
}

/* ui/values */

div.values input[type="text"] {
	width: 16em;
}

div.values input {
	margin: 0.2em 0.1em;
}

div.values div.current {
	margin-top: 1em;
}

/* --- pg parts --- */

/* pg/form */
/* note: form's "listing" scheme uses the DIVs, while the "table" scheme using the... table elements */

div.form {
	padding: 0 0 0.5em 0;
}

div.form div.header, div.form td.header {
	font-size: 150%;
	color: #99c;
}

div.form div.header {
	margin: 0.3em 0;
}

div.form div.item {
	margin: 0 0 0.7em 0;
}

div.form div.label {
	color: #777;
	padding-left: 0.2em;
	margin: 0 0 0.2em 0;
}

div.form div.literal {
	font-style: italic;
	margin: 0.5em 0;
}

div.form table {
	margin: 0;
}

div.form table td {
	/*vertical-align: middle;*//* redundant? */
}

div.form td.label {
	color: #777;
	padding: 0.3em 0.5em 0.3em 0.5em;
}

div.form td.value {
	padding: 0.3em 0.5em 0.3em 0.5em;
}

div.form td.literal {
	font-style: italic;
	padding: 0.5em 0;
}

div.form div.navigation {
	margin: 1em 0;
}

/* MQ section */

div.mq-list {
	display: flex;
	justify-content: space-between;
	padding: 0;
	margin-bottom: 0.3em;
	color: #000;
	overflow-y: auto;
}

div.mq-list:empty {
	display: none;
}

div.mq-list ul {
	list-style-type: none;
	width: 100%;
	margin: 0.4em 0 0 -1.3em;
}

div.mq-list ul li {
	padding: 0.3em 0.5em;
	margin-bottom: 0.2em;
	background-color: #f9f9f9;
}

div.mq-list ul li.mq-new {
	font-weight: bold;
}

div.mq-list div.mq-buttons {
	margin: 0.4em 0.2em 0.2em 0.2em;
	border-left: 2px solid #ccc;
}

div.mq-list div.mq-buttons input[type="button"] {
	font-size: 150%;
	color: #000;
	border: none;
	background-color: transparent;
	cursor: pointer;
}

div.ui-items .itm {
	display: flex;
	flex-wrap: wrap;
	row-gap: 0.2em;
	margin-bottom: 0.3em;
}

div.ui-items .meta {
	margin-bottom: 1.5em;
}

div.ui-items .meta .btns {
	align-self: flex-end;
}

div.ui-items div.lbl {
	margin: 0.2em;
}

div.ui-items input.items-integer {
	text-align: right;
	max-width: 5em;
}

div.ui-items input.items-string {
	max-width: 15em;
}

div.ui-items input.incomplete {
	border-bottom: 2px solid red;
}

