html, body {
	height: 100%;
	width: 100%;
}
body {
	margin: 0;
	padding: 0;

	font-family: var(--font-default-family);
	font-size: var(--font-default-size);
	color: var(--font-default-color);
	background: var(--background-default-color);

	overflow: hidden;
}
div, span, input {
	box-sizing: border-box;
}

/* ============================================== */
#z_header {
	width: 100%;
	height: var(--header-height);
	background-color: rgb(68, 84, 106);
	color: white;
}
#z_innerview {
	display: flex;
	flex-direction: column;
	position: relative;
	min-width: calc(100% - 200px);
	height: 100%;
	padding: var(--spacing-default-size);
	background-color: #EAEAFF;
}

#z_footer {
	display: flex;
	height: var(--footer-height);
	padding: 0 var(--spacing-default-size);
	width: 100%;
}
/* ============================================== */
.zTitleStyle {
	font-family: var(--font-title-family);
	font-size: var(--font-xlarge-size)
}
.zSubtitleStyle {
	font-family: var(--font-title-family);
	font-size: var(--font-default-size);
	font-style: italic;
}
.zLabelStyle {
	font-family: var(--font-default-family);
	font-size: var(--font-default-size)
}
.zCommentStyle {
	font-family: var(--font-default-family);
	font-style: italic;
	font-size: var(--font-default-size)
}

/* ============================================== */
.zDataBlock {
	display: flex;
	background-color: var(--background-block-color);
	border: 1px solid var(--border-default-color);
	border-radius: var(--border-default-radius);
	box-shadow: var(--box-shadow-offset-x) var(--box-shadow-offset-y) var(--box-shadow-blur-radius) var(--shadow-default-color);	padding: var(--spacing-default-size);
	margin-bottom: var(--spacing-default-size);
	flex-shrink: 0;
	overflow: hidden;
}
.zElementBlock {
	background-color: var(--background-block-color);
	border: 1px solid var(--border-default-color);
	border-radius: var(--border-default-radius);
	box-shadow: var(--box-shadow-offset-x) var(--box-shadow-offset-y) var(--box-shadow-blur-radius) var(--shadow-default-color);	padding: var(--spacing-default-size);
	flex-shrink: 0;
	padding: var(--spacing-small-size);
}

.zExpandBlock {
	flex-grow: 1;
	flex-shrink: 1;
}
.zScrollingBlock {
	/*padding-right: 4px;*/
	display: flex;
	flex-direction: column;
	flex-grow: 1;
	overflow-y: auto;
	scrollbar-gutter: auto;
}
.zGroupBlock {
	position: relative;
	border: 1px solid var(--border-default-color);
	border-radius: var(--border-default-radius);
	padding: var(--spacing-large-size) var(--spacing-default-size) 0 var(--spacing-default-size);
}
.zGroupBlockX {
	position: relative;
	/*
	border: 1px solid var(--border-default-color);
	border-radius: var(--border-default-radius);
	*/
	padding: var(--spacing-large-size) var(--spacing-default-size);
}
.zGroupBlock[data-label]::after {
	content: attr(data-label);
	position: absolute;
	top: -8px;
	left: 6px;
	font-size: var(--font-small-size);
	font-style: italic;
	background-color: var(--background-block-color);
	width: max-content;
	z-index: 10;
}
.zGroupBlockLabel {
	font-size: var(--font-small-size);
	font-style: italic;
	background-color: var(--background-block-color);
	width: max-content;
	transform: translateX(6px);
	z-index: 10;
}
.zOutlinedBlock {
	padding: var(--spacing-small-size);
	border: 1px solid var(--border-default-color);
	border-radius: var(--border-default-radius);
}

/* == FORMATTING ================================ */
/* flex */
.zFlexRow {
	display: flex;
	flex-direction: row;
}
.zFlexCol {
	display: flex;
	flex-direction: column;
}
.zFWrap {
	flex-wrap: wrap;
}
.zFGrow {
	flex-grow: 1;
}
.zFNoGrow {
	flex-grow: 0;
}
.zFShrink {
	flex-shrink: 1;
}
.zFNoShrink {
	flex-shrink: 0;
}
/* margin */
.zMgR {
	margin-right: var(--spacing-default-size);
}
.zMgRs {
	margin-right: var(--spacing-small-size);
}
.zMgRxs {
	margin-right: var(--spacing-xsmall-size);
}
.zMgRl {
	margin-right: var(--spacing-large-size);
}
.zMgRxl {
	margin-right: var(--spacing-xlarge-size);
}
.zMgL {
	margin-left: var(--spacing-default-size);
}
.zMgLs {
	margin-left: var(--spacing-small-size);
}
.zMgLxs {
	margin-left: var(--spacing-xsmall-size);
}
.zMgLl {
	margin-left: var(--spacing-large-size);
}
.zMgLxl {
	margin-left: var(--spacing-xlarge-size);
}
.zMgT {
	margin-top: var(--spacing-default-size);
}
.zMgB {
	margin-bottom: var(--spacing-default-size);
}

.zHCenter {
	justify-content: center;
}
.zVCenter{
	align-items: center;
}

/* == MISCELLANOUS ============================== */
.unselectable {
	-webkit-user-select: none;
	-webkit-touch-callout: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}
.strikethrough {
	text-decoration: line-through;
}