/**
 * Action: core.view/setup
 **/

.setup-view{ 
	width: 100%; height: 100%; display: flex; flex-direction: column; 
	align-items: center; justify-content: center; padding: 2em; 
	background: var(--setup-background); 
}
.setup-head{ margin-bottom: 1.5em; }
.setup-icon{ filter: var(--setup-logo-filter); background: var(--setup-logo-image) no-repeat center center / contain; }
.setup-logo{ height: var(--setup-logo-height); opacity: 0; }
.setup-author{ 
	display: flex; align-items: center; justify-content: center; margin-top: 1em; 
	filter: grayscale(1) invert(1) brightness(10); 
}
.setup-emiagic{ margin-left: .5em; height: 1.25em; }
.setup-body{
	background: var(--grad-hg); border-radius: 1em; 
	width: min(40em, 100%); display: flex; flex-direction: column; overflow: hidden;
}
.setup-top{ 
	padding: .75em; display: flex; align-items: center; justify-content: center; 
	position: relative; z-index: 1; box-shadow: 0px 0px 3px #aaa;
}
.setup-title{ text-align: center; }
.setup-center{ overflow-y: auto; padding: 2em; display: flex; flex-direction: column; }

@media (max-width: 1200px){ 
	.setup-body{ width: 100%; }
}

/**
 * Action: core.view/app
 **/

.app-mobile, .app-mobile:hover, .app-mobile:focus{ 
	background-size: var(--icon-size) var(--icon-size); 
	filter: var(--menu-mob-filter); transform: var(--menu-mob-transform);
}
.app-mobile{ 
	z-index: 200; line-height: 1em; position: absolute; top: 0; left: 0; cursor: pointer; 
	display: none; align-items: center; justify-content: center; transition: all .5s;
	height: var(--tray-height); width: var(--tray-height);
}
.app-mobile.on, .app-mobile.on:hover, .app-mobile.on:focus{ 
	filter: var(--menu-mob-on-filter); transform: var(--menu-mob-on-transform); 
}

@media (max-width: 1200px){
    .app-mobile{ display: flex; }
}

@keyframes app-focus{ 0%{ transform: scale(1); } 50%{ transform: scale(1.1); } }

.app-menu{ 
	overflow: hidden; position: relative; z-index: 150; height: 100%; position: fixed; top: 0; left: 0; transition: all .25s; 
	width: var(--menu-min); border-right: var(--menu-border);
	box-shadow: var(--menu-shadow); background: var(--menu-background); 
}
.app-menu:hover, .app-menu.on{ flex: 0 0 var(--menu-width); width: var(--menu-width); }
.app-menu-nav{ height: 100%; display: flex; flex-direction: column; overflow: hidden; }
.app-menu-top{ 
	width: 100%; flex: 0 0 var(--menu-min); padding: var(--menu-mp13); box-shadow: var(--menu-top-shadow); 
	background: var(--menu-top-background); border-bottom: var(--menu-top-border); 
	display: flex; flex-direction: column; justify-content: center;
}
.app-menu-home{ 
	width: 100%; padding: var(--menu-mp13); text-decoration: none; user-select: none; 
	display: flex; align-items: center; justify-content: flex-start; 
}
.app-menu-home:hover, .app-menu-home:focus{ text-decoration: none; }
.app-menu:hover .app-menu-home, .app-menu.on .app-menu-home{ justify-content: center; }
.app-menu-logo{ height: var(--menu-logo); width: var(--menu-logo); flex: 0 0 var(--menu-logo); }
.app-menu-logo-full{ height: var(--menu-logo); display: none; }
.app-menu.on .app-menu-logo-full, .app-menu:hover .app-menu-logo-full{ display: inline-flex; }
.app-menu.on .app-menu-logo-full + .app-menu-logo, .app-menu:hover .app-menu-logo-full + .app-menu-logo{ display: none; }
.app-menu-home:focus .app-menu-logo{ animation: 1s ease-in-out infinite app-focus; }
.app-menu-title{ 
	padding: 0em var(--menu-mp23); white-space: nowrap; text-align: center; 
	font-weight: bold; opacity: 0; transition: all .25s; color: var(--menu-top-color); 
	font-size: var(--menu-top-size); font-weight: var(--menu-top-weight); font-family: var(--menu-top-font); 
}
.app-menu:hover .app-menu-title{ opacity: 1; }
.app-menu.on .app-menu-title{ opacity: 1; }
.app-menu-center{ width: 100%; flex-grow: 1; overflow: hidden; position: relative; display: flex; flex-direction: column; }
.app-menu-ul{ flex-grow: 1; width: calc(100% + var(--scroll-size)); padding: var(--menu-margin13) var(--menu-margin23); overflow-y: scroll; }
.app-menu-li{ text-align: center; padding: var(--menu-margin13) 0em; border-top: var(--menu-item-border); }
.app-menu-li:first-child{ border-top: none; }
.app-menu-link{ 
	display: flex; align-items: center; width: 100%; padding: calc(var(--menu-margin13) + var(--menu-padding)); 
	cursor: pointer; text-decoration: none; user-select: none;
	background: var(--menu-item-background); outline: var(--menu-item-outline); 
	color: var(--menu-item-color); font-weight: var(--menu-item-weight); text-decoration: var(--menu-item-decoration);
}
.app-menu-link:hover{ 
	background: var(--menu-item-over-background); outline: var(--menu-item-over-outline); 
	color: var(--menu-item-over-color); font-weight: var(--menu-item-over-weight); text-decoration: var(--menu-item-over-decoration);
}
.app-menu-link.active{ 
	background: var(--menu-item-active-background); outline: var(--menu-item-active-outline); 
	color: var(--menu-item-active-color); font-weight: var(--menu-item-active-weight); text-decoration: var(--menu-item-active-decoration);
}
.app-menu-link:focus{ 
	background: var(--menu-item-focus-background); outline: var(--menu-item-focus-outline); 
	color: var(--menu-item-focus-color); font-weight: var(--menu-item-focus-weight); text-decoration: var(--menu-item-focus-decoration);
}
.app-menu-icon{ 
	margin-right: 1em; display: block; 
	height: var(--menu-icon); width: var(--menu-icon); flex: 0 0 var(--menu-icon); 
	background-repeat: no-repeat; background-size: contain; background-position: center center; 
}
.app-menu-link:focus .app-menu-icon{ animation: 1s ease-in-out infinite app-focus; }
.app-menu-text{ 
	width: 0; flex-grow: 1; text-align: left; white-space: nowrap; 
	font-size: 1.125em; overflow: hidden; text-overflow: ellipsis; 
}
.app-menu:hover .app-menu-text, .app-menu.on .app-menu-text{ width: auto; }
.app-menu-1-ul{ 
	position: fixed; top: 0; left: var(--menu-width); z-index: 100; margin: 0; display: none; 
	width: var(--menu-width); height: 100%; overflow: hidden; 
	background: #ececec; border-right: 1px solid #dcdcdc; border-left: 1px solid #dcdcdc;
}
.app-menu.on .app-menu-1-ul.on{ display: block; }
.app-menu-bottom{ 
	padding: var(--menu-mp13); box-shadow: var(--menu-bottom-shadow); 
	border-top: var(--menu-bottom-border); background: var(--menu-bottom-background); 
}
.app-menu-tools{ display: flex; align-items: center; justify-content: center; overflow: hidden; padding: var(--menu-mp13); }
.app-menu.on .app-menu-tools-none{ display: none; }
.app-menu-tools-ul{ display: flex; align-items: center; justify-content: center; }
.app-menu-tools-li{ 
	height: var(--input-height); width: var(--input-height); flex: 0 0 var(--input-height); 
	display: none; margin: 0em var(--menu-mp13); 
}
.app-menu-tools-icon{ height: var(--menu-tool); width: var(--input-tool); }
.app-menu:hover .app-menu-tools-li{ display: block; }
.app-menu-tools-none, .app-menu-tools-link, .app-menu-search-icon,
.app-menu-tools-none:hover, .app-menu-tools-link:hover, .app-menu-search-icon:hover,
.app-menu-tools-none:focus, .app-menu-tools-link:focus, .app-menu-search-icon:focus{ 
	height: var(--input-height); width: var(--input-height); flex: 0 0 var(--input-height); background-size: var(--menu-tool); 
	border: 1px solid #dcdcdc; border-radius: 50%; filter: grayscale(1); 
	display: flex; align-items: center; justify-content: center;
}
.app-menu-tools-none:focus, .app-menu-tools-link:focus, .app-menu-search-icon:focus{ outline: 1px dashed #000; }
.app-menu-tools-link:hover{ filter: none; }
.app-menu:hover .app-menu-tools-none{ display: none; }
.app-menu.on .app-menu-tools-li{ display: block; }

.app-menu-search{ display: flex; align-items: center; justify-content: center; padding: var(--menu-mp13); }
.app-menu-search-value{ position: relative; display: flex; align-items: center; justify-content: center; }
.app-menu-search-input{ display: none; }
.app-menu:hover .app-menu-search-input, .app-menu.on .app-menu-search-input{ display: block; width: 15em; }
.app-menu:hover .app-menu-search-icon{ position: absolute; top: 0; right: 0; filter: none; border-radius: 0; background-color: transparent; }
.app-menu-author{ 
	display: flex; align-items: center; justify-content: center; background: var(--menu-bottom-author); 
	padding: 0em var(--menu-mp23) var(--menu-mp23) var(--menu-mp23); 
}
.app-menu-author-only{ 
	padding: var(--menu-mp23); box-shadow: var(--menu-bottom-shadow);
    border-top: var(--menu-bottom-border); background: var(--menu-bottom-background)
}
.app-menu-author-link{ 
	display: flex; align-items: center; justify-content: center; text-decoration: none; 
	user-select: none; cursor: default; white-space: nowrap; width: 100%; margin-top: 2px;
}
.app-menu-author-link[href]{ cursor: pointer; }
.app-menu-author-link:hover, .app-menu-author-link:focus{ text-decoration: none; }
.app-menu-author-text{ margin-right: var(--menu-mp23); display: none; font-size: .875em; color: var(--menu-bottom-color); text-decoration: none; }
.app-menu-author-icon{ height: 1.25em; transform: scale(.5); }
.app-menu:hover .app-menu-author-text, .app-menu.on .app-menu-author-text{ display: block; }
.app-menu:hover .app-menu-author-icon, .app-menu.on .app-menu-author-icon{ transform: scale(1); }

@media (max-width: 1200px){
	.app-menu{ width: 0em; flex: 0 0 0em; }
	.app-menu:hover, .app-menu.on{ flex: 0 0 var(--menu-mob-width); width: var(--menu-mob-width); }
	.app-menu-top{ flex: 0 0 var(--tray-height); padding-left: var(--tray-height); justify-content: center; }
	.app-menu-home{ padding: 0em; }
	.app-menu-logo{ height: var(--menu-icon); width: var(--menu-icon); flex: 0 0 var(--menu-icon); }
	.app-menu-logo-full{ height: var(--menu-icon); flex: 0 0 var(--menu-icon); }
	.app-menu-title{ opacity: 1; }
	.app-menu-search-input{ display: block; width: 15em; }
	.app-menu-search-icon{ position: absolute; top: 0; right: 0; filter: none; border-radius: 0; background-color: transparent; }
}

.app-tray{ 
	flex: 0 0 var(--tray-height); display: flex; align-items: center; justify-content: flex-end; 
	position: relative; z-index: 50; box-shadow: var(--tray-shadow); background: var(--tray-background); 
	color: var(--tray-color);
}
.app-tray-title{ flex-grow: 1; padding: 0em var(--tray-padding); display: flex; align-items: center; }
.app-tray-favicon{ height: 1em; width: 1em; flex: 0 0 1em; }
.app-tray-h1{ display: flex; align-items: center; white-space: nowrap; }
.app-tray-title>*, .app-tray-h1>*{ margin-left: 8pt; }
.app-tray-title>*:first-child, .app-tray-h1>*:first-child{ margin-left: 0pt; }
.app-tray-icon{ margin-right: .5em; height: calc(var(--tray-height) - 1em); }
.app-tray-label{ font-size: .75em; line-height: 1em; }
.app-tray-value{ font-weight: bold; white-space: nowrap; }
.app-tray-tooltip{ 
	box-shadow: var(--tray-tooltip-shadow); background: var(--tray-tooltip-background); 
	border: var(--tray-tooltip-border); border-top: var(--tray-tooltip-top); color: var(--tray-tooltip-color);
	top: var(--tray-height) !important;
}
.app-tray-dialogs, .app-tray-dialogs:hover, .app-tray-dialogs:focus{ 
	font-weight: var(--tray-dialogs-weight); color: var(--tray-dialogs-color); 
	background: var(--tray-dialogs-background); border: var(--tray-dialogs-border);
	border-radius: var(--tray-dialogs-radius); box-shadow: var(--tray-dialogs-shadow);
}
.app-tray-dialogs:before, .app-tray-dialogs:hover:before, .app-tray-dialogs:focus:before{ filter: var(--tray-dialogs-icon); }
.app-tray-dialogs:focus{ outline: var(--tray-dialogs-outline); }
.app-tray-dialogs-li{ display: flex; padding: .5em 0em; border-bottom: var(--tray-tooltip-separator); }
.app-tray-dialogs-li:first-child{ padding-top: 0em; }
.app-tray-dialogs-li:last-child{ padding-bottom: 0em; border-bottom: none; }
.app-tray-dialogs-title{ 
	font-size: 1.125em; white-space: nowrap; display: flex; align-items: center; 
	cursor: pointer; flex-grow: 1; 
}
.app-tray-dialogs-title>*{ margin-left: .5em; }
.app-tray-dialogs-title>*:first-child{ margin-left: 0em; filter: none !important; }
.app-tray-dialogs-close{ margin-left: .5em; height: 1.25em; width: 1.25em; flex: 0 0 1.25em; filter: var(--tray-dialogs-close); } 
.app-tray-user{ display: flex; align-items: center; cursor: pointer; padding: .5em; height: 100%; }
.app-tray-user-face{ height: var(--icon-size); margin-right: var(--input-padding); }
.app-tray-user-disconnected{ font-weight: bold; padding-right: var(--input-padding); }
.app-tray-user-connected{ font-size: .75em; }
.app-tray-user-value{ font-weight: bold; font-size: .875em; }
.app-tray-user-tooltip{ left: auto !important; right: 0em; margin: 0em; }
.app-tray-user-tooltip>*{ margin-top: var(--input-padding); padding-top: var(--input-padding); border-top: var(--scribe-submenu-separator); }
.app-tray-user-tooltip>*:first-child{ margin-top: 0em; padding-top: 0em; border-top: none; }
.app-tray-user-row{ padding: calc(.5 * var(--input-padding)); display: flex; align-items: center; }
.app-tray-user-row-label{ display: flex; align-items: center; white-space: nowrap; }
.app-tray-user-row-label:after{ content: ":"; margin: 0 .25em; }
.app-tray-user-row-value{ font-weight: bold; white-space: nowrap; }
.app-tray-user-link{ width: 100%; display: flex; align-items: center; padding: calc(.5 * var(--input-padding)); }
.app-tray-user-icon{ height: 1em; width: 1em; flex: 0 0 1em; filter: grayscale(1) brightness(0); margin-right: var(--input-padding); }

@media (max-width: 1200px){
	.app-tray-title{ padding-left: calc(var(--tray-height) + var(--tray-padding)); }
	.app-tray-h1{ display: none; }
	.app-tray-h1 + *{ margin-left: 0pt; }
}

.app{ height: 100%; width: 100%; overflow: hidden; padding-left: var(--menu-min); }
.app-menu-none{ padding-left: 0em; }
.app-main{ flex-grow: 1; overflow: hidden; display: flex; flex-direction: column; }
.app-main{ height: 100%; width: 100%; }
.app-section{ height: 100%; width: 100%; flex-grow: 1; overflow-y: auto; }

@media (max-width: 1200px){
	.app{ padding-left: 0em; }
}

.app-main .view-title{ display: none; }

/**
 * Action: core.view/web
 **/

.core{
	--white: #fff;
	--black: #000;
	--orange: #fda711;
	--blue: #37499f;
	--darkblue: #1c2552;
	--grey: #dcdcdc;
	--darkgrey: #aaa;
	--lightgrey: #ececec;
	--gradient: linear-gradient(90deg, var(--darkblue) 20%, var(--blue) 80%);
	--colorgrad: linear-gradient(128deg, var(--orange) 20%, var(--blue) 80%);
	--greygrad: linear-gradient(90deg, var(--grey) 20%, var(--white) 80%);
	--gradgrey: linear-gradient(90deg, var(--white) 20%, var(--grey) 80%);
	--margin1x: 8pt;
	--margin2x: 16pt;
	--margin4x: 32pt;
	--nigram1x: -4pt;
	--nigram2x: -12pt;
	--nigram4x: -28pt;
	--shadow: 3px 6px 9px var(--grey);
}

@media (max-width: 1200px){
	.core{
		--margin1x: 4pt;
		--margin2x: 8pt;
		--margin4x: 16pt;
		--nigram1x: -2pt;
		--nigram2x: -6pt;
		--nigram4x: -14pt;
	}
}

/* Navigation */

.web-header{ position: fixed; top: 0; left: 0; width: 100%; height: 4em; z-index: 10; }
.web-header{ display: flex; align-items: center; justify-content: center; }
.web-header{ background: var(--gradient); }
.web-logo{ height: 100%; padding: .5em; }
.web-icon{ height: 100%; }

.web-menu-0{ height: 100%; margin: 0em 1em; }
.web-menu-0-ul{ display: flex; align-items: center; height: 100%; }
.web-menu-0-li{ height: 100%; }
.web-menu-0-link{ height: 100%; padding: 0em 1em; font-size: 1.25em; font-weight: bold; }
.web-menu-0-link{ display: flex; align-items: center; color: var(--white); cursor: pointer; }

.web-menu-1{ display: none; position: fixed; top: 4em; left: 0; width: 100%; padding: 1em; z-index: 30; }
.web-menu-1{ background: var(--greygrad); }
.web-menu-1-ul{ display: flex; height: 100%; justify-content: center; } 
.web-menu-1-li{ padding: 0em 1em; border-right: 1px solid var(--darkgrey); }
.web-menu-1-li:last-child{ border-right: none; }
.web-menu-1-link{ display: flex; align-items: center; justify-content: center; }
.web-menu-1-link{ font-size: 1.25em; font-weight: bold; cursor: pointer; }
.web-menu-1-link:hover{ text-decoration: underline; }

.web-menu-2{ margin-top: .5em; }
.web-menu-2-li{ border-bottom: 1px dashed var(--darkgrey); margin-bottom: .25em; padding-bottom: .25em; }
.web-menu-2-li:last-child{ border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.web-menu-2-link{ cursor: pointer; }
.web-menu-2-link:hover{ text-decoration: underline; }

.web-menu-li:hover .web-menu-1{ display: block; }

/* Banner */

.web-banner{ height: 100vh; width: 100%; padding: 2em; }
.web-banner{ display: flex; flex-direction: column; align-items: center; justify-content: center; }
.web-banner{ background: var(--gradient); color: var(--white); }
.web-banner>*{ margin-bottom: var(--margin2x); }
.web-banner>*:last-child{ margin-bottom: 0; }
.web-banner-icon{ height: 9em; width: 30em; flex: 0 0 9em; margin: 0em 0em var(--margin2x) 0em; }
.web-banner-title{ max-width: 25.5em; font-size: 2em; text-align: center; }
.web-banner-texts{ max-width: 40em; text-align: justify; font-size: 1.125em; }
.web-banner-texts>*{ margin-bottom: var(--margin2x); }
.web-banner-texts>*:last-child{ margin-bottom: 0; }
.web-banner-text{ display: block; font-weight: normal; }
.web-banner-tagline{ display: block; font-weight: bold; }

/* Footer */

.web-bottom{ background: var(--gradient); padding: 1em; }

.web-links{ padding: .5em; display: flex; flex-direction: column; justify-content: center; align-items: center; }
.web-links-title{ font-weight: bold; margin-bottom: .5em; color: var(--white); }
.web-links-ul{ display: flex; align-items: center; justify-content: center; }
.web-links-li{ padding: 0em .5em; border-right: 1px solid var(--orange); }
.web-links-li:last-child{ border-right: none; }
.web-links-link{ color: var(--white); text-decoration: none; cursor: pointer; }
.web-links-link:hover{ text-decoration: underline; }

.web-social{ padding: .5em; display: flex; flex-direction: column; justify-content: center; align-items: center; }
.web-social-title{ font-weight: bold; margin-bottom: .5em; color: var(--white); }
.web-social-ul{ display: flex; align-items: center; justify-content: center; }
.web-social-li{ padding: 0em .25em; }
.web-social-link{ cursor: pointer; }
.web-social-icon{ height: 2.5em; width: 2.5em; flex: 0 0 2.5em; }

/* View */

.web-view>*{ padding: 4em; }
.web-view>* .h2{ font-size: 2em; font-weight: bold; text-align: center; margin-bottom: var(--margin4x); }
.web-view>* h2{ font-size: 2em; text-align: center; margin-bottom: var(--margin4x); color: var(--blue); }
.web-view>* .title>*:last-child{ font-size: 1.5em; font-weight: normal; margin-top: var(--nigram4x); color: var(--blue); }
.web-view>* .title>*:first-child{ font-size: 2em; font-weight: bold; text-align: center; margin-bottom: var(--margin4x); }
.web-view>*>*{ margin-bottom: var(--margin2x); }
.web-view>*>*:last-child{ margin-bottom: 0; }
.web-view>*:nth-child(4n){ background: var(--gradgrey); } 
.web-view>*:nth-child(4n+2){ background: var(--greygrad); } 
.web-view>*:nth-child(4n+1){ background: var(--white); }
.web-view>*:nth-child(4n+3){ background: var(--white); }

@media (max-width: 1200px){
	.mg-view>*{ padding: 2em; }
}

/**
 * Action: core.view/blank
 **/

.view-view{ height: 100%; width: 100%; display: flex; flex-direction: column; }
.view-title{ 
	display: flex; align-items: center; justify-content: center; position: relative; z-index: 40; 
	background: var(--title-background); box-shadow: var(--title-shadow); 
	border: var(--title-border); border-bottom: var(--title-bottom); 
	height: var(--title-height); width: 100%; flex: 0 0 var(--title-height); 
	padding: 0em var(--title-padding); 
}
.view-favicon{ height: 1em; width: 1em; flex: 0 0 1em; }
.view-h1{ 
	color: var(--title-color); font-weight: var(--title-weight); display: flex; align-items: center; white-space: nowrap;
}
.view-title>*, .view-h1>*{ margin-left: 8pt; }
.view-title>*:first-child, .view-h1>*:first-child{ margin-left: 0pt; }
.view-tools{ 
	display: flex; align-items: center; justify-content: center; position: relative; z-index: 30; 
	background: var(--tools-background); box-shadow: var(--tools-shadow); 
	border: var(--tools-border); border-bottom: var(--tools-bottom); 
	height: var(--tools-height); width: 100%; flex: 0 0 var(--tools-height); 
	padding: 0em var(--tools-padding);
}
.view-tools>*{ position: relative; margin-right: var(--tools-padding); }
.view-tools>*:last-child{ margin-right: 0em; }
.view-buttons, .view-filters{ display: flex; align-items: center; justify-content: center; }
.view-buttons>*, .view-filters>*{ margin-right: var(--tools-padding); }
.view-buttons>*:last-child, .view-filters>*:last-child{ margin-right: 0em; }
.view-filter-label{ display: flex; align-items: center; margin-bottom: .5em; position: relative; }
.view-filter-label>*{ margin-left: .5em; }
.view-filter-label>*:first-child{ margin-left: 0em; }
.view-filter-label>.icon{ height: 1.25em; width: 1.25em; flex: 0 0 1.25em; }
.view-filter-text{ font-weight: var(--vtools-filters-weight); font-size: var(--vtools-filters-size); }
.view-filter-toggle{ 
	cursor: pointer; padding: var(--input-padding); border: var(--button-border);
	background: var(--button-background); color: var(--button-color);
}
.view-filter-toggle:after{ 
	filter: var(--button-icon-filter);
	content: ""; height: var(--input-icon); width: var(--input-icon); position: absolute; 
	top: var(--input-padding); right: var(--input-padding);
	background-size: contain; background-position: center center; background-repeat: no-repeat; 
}
.view-filter-toggle + *{ display: none; }
.view-filter-toggle.on + *{ display: block; }
.view-filter-toggle.on:after{ transform: rotate(270deg); }
.view-search-input{ width: 12em; flex-grow: 1; }
.view-more-tooltip{ padding: var(--more-margin); }
.view-more-item{ 
	display: flex; align-items: center; cursor: pointer; user-select: none; 
	padding: var(--more-padding); border: var(--more-border); 
	border-bottom: var(--more-separator);
	color: var(--more-color); background: var(--more-background);
}
.view-more-item:focus{ 
	color: var(--more-focus-color); background: var(--more-focus-background);
	outline: var(--more-focus-outline); font-weight: var(--more-focus-weight);
}
.view-more-item:last-child{ border-bottom: var(--more-border); }
.view-more-item-icon{ 
	height: var(--button-icon-size); width: var(--button-icon-size); 
	flex: 0 0 var(--button-icon-size); margin-right: .5em; 
}

.view-vtools{
	height: 100%; width: var(--vtools-width); flex: 0 0 var(--vtools-width); z-index: 20; 
	display: flex; flex-direction: column; overflow: hidden;
	background: var(--vtools-background); box-shadow: var(--vtools-shadow);
}
.view-vtools-toggle-fixed{ display: none; }
.view-vtools-async{ position: absolute; top: calc(.5 * (var(--tools-height) - var(--icon-size))); z-index: 100; }
.view-vtools-async-left{ right: calc(.5 * (var(--tools-height) - var(--icon-size)) + var(--scroll-size)); }
.view-vtools-async-fixed{ right: calc(.5 * (var(--tools-height) - var(--icon-size)) + var(--scroll-size)); }
.view-vtools-async-right{ left: calc(.5 * (var(--tools-height) - var(--icon-size))); }
.view-vtools-fixed{ border-right: var(--vtools-border); }
.view-vtools-left{ position: absolute; top: 0; left: 0; border-right: var(--vtools-border); }
.view-vtools-right{ position: absolute; top: 0; right: 0; border-left: var(--vtools-border); }
.view-vtools>*{ padding: var(--vtools-margin);  }
.view-vtools>.view-filters{
	flex-grow: 1; flex-direction: column; justify-content: flex-start; 
	width: calc(100% + var(--scroll-size)); overflow-y: scroll;
	padding: calc(2 * var(--vtools-margin)); background: var(--vtools-filters-background);
}
.view-vtools>.view-filters>.view-filter{ width: 100%; margin-right: 0; margin-bottom: var(--vtools-margin); }
.view-vtools>.view-filters>.view-filter:last-child{ margin-bottom: 0; }
.view-vtools>.view-buttons{	box-shadow: var(--vtools-shadow); }
.view-vtools>.view-buttons:first-child{ border-bottom: var(--vtools-border); }
.view-vtools>.view-buttons:last-child{ border-top: var(--vtools-border); }
.view-vtools>.view-buttons>.view-button{ margin-right: var(--vtools-margin); }
.view-vtools>.view-buttons>.view-button:last-child{ margin-right: 0; }

@media (max-width: 1200px){
	.view-vtools-toggle-fixed{ display: inline-flex; }
	.view-vtools-fixed{ display: none; position: absolute; top: 0; left: 0; }
	.view-vtools-fixed.off{ display: flex !important; }
}

.view-center{ 
	flex-grow: 1; overflow: hidden; display: flex; position: relative;
	padding: var(--view-padding); background: var(--view-background); 
}
.view-body, .view-form{ 
	width: 100%; flex-grow: 1; overflow: hidden; display: flex; flex-direction: column;
	position: relative; box-shadow: var(--view-shadow); border: var(--view-border);
}
.view-none{
	flex-grow: 1; display: flex; flex-direction: column; align-items: center; 
	justify-content: center; background: var(--rows-background); 
	padding: max(var(--rows-padding), var(--items-padding), var(--row-padding));
}
.view-none-icon{ height: 8em; width: 8em; flex: 0 0 8em; margin-bottom: 1em; cursor: default; }
.view-none-title{ font-size: 1.25em; font-weight: bold; text-align: center; }
.view-none-text{ margin-top: .5em; max-width: min(30em, 100%); text-align: center; }
.view-dialog-window{ width: min(100%, 50em); height: min(100%, 40em); }
.view-dialog .view-title{ display: none; }

/**
 * Action: core.view/list
 **/

/* All lists */ 

.list-view{ height: 100%; width: 100%; display: flex; flex-direction: column; }
.list-count{ display: flex; align-items: center; }
.list-count:before{ content: "("; display: block; }
.list-count:after{ content: ")"; display: block; }
.list-nav{ display: flex; align-items: center; }
.list-nav>*{ margin-right: var(--tools-padding); }
.list-nav>*:last-child{ margin-right: 0em; }
.list-paging{ 
	display: flex; align-items: center; justify-content: center;
	height: var(--paging-height); width: var(--paging-width);
	position: absolute; bottom: 0em; left: calc(50% - 0.5 * var(--paging-width));
	background: var(--paging-background); box-shadow: var(--paging-shadow);
	border: var(--paging-border); border-bottom: none;
}
.list-actions-more{ 
	display: flex; align-items: center; padding: .75em 1em; margin: 0; 
	margin-right: calc(.5em + var(--icon-size)); background: var(--context-side);
}
.list-actions{ display: flex; align-items: center; justify-content: center; white-space: nowrap; }
.list-actions.a1{ flex: 0 0 calc(2 * var(--row-padding) + var(--icon-size)); }
.list-actions.a2{ flex: 0 0 calc(3 * var(--row-padding) + 2 * var(--icon-size)); }
.list-actions.a3{ flex: 0 0 calc(4 * var(--row-padding) + 3 * var(--icon-size)); }
.list-actions.a4{ flex: 0 0 calc(5 * var(--row-padding) + 4 * var(--icon-size)); }
.list-actions.a5{ flex: 0 0 calc(6 * var(--row-padding) + 5 * var(--icon-size)); }
.list-actions.a6{ flex: 0 0 calc(7 * var(--row-padding) + 6 * var(--icon-size)); }
.list-actions.a7{ flex: 0 0 calc(8 * var(--row-padding) + 7 * var(--icon-size)); }
.list-col-actions.a1{ flex: 0 0 calc(4 * var(--row-padding) + var(--icon-size)); }
.list-col-actions.a2{ flex: 0 0 calc(5 * var(--row-padding) + 2 * var(--icon-size)); }
.list-col-actions.a3{ flex: 0 0 calc(6 * var(--row-padding) + 3 * var(--icon-size)); }
.list-col-actions.a4{ flex: 0 0 calc(7 * var(--row-padding) + 4 * var(--icon-size)); }
.list-col-actions.a5{ flex: 0 0 calc(8 * var(--row-padding) + 5 * var(--icon-size)); }
.list-col-actions.a6{ flex: 0 0 calc(9 * var(--row-padding) + 6 * var(--icon-size)); }
.list-col-actions.a7{ flex: 0 0 calc(10 * var(--row-padding) + 7 * var(--icon-size)); }
.list-actions>*{ margin: 0em 0em 0em var(--row-padding); }
.list-actions>*:first-child{ margin-left: 0; }

/* Rows lists */

.list-row{ display: flex; width: 100%; }
.list-head{ 
	position: relative; z-index: 10;
	padding: 0em calc(var(--rows-padding) + var(--scroll-size)) 0em var(--rows-padding); 
	border: var(--head-border); background: var(--head-background); box-shadow: var(--head-shadow); 
	border-left: none; border-right: none;
}
.list-hrow{ border-bottom: var(--head-horizontal); }
.list-hrow:last-child{ border-bottom: none; }
.list-th{ 
	display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden;
	flex-grow: 1; line-height: 1em; padding: var(--head-padding); border-right: var(--head-vertical);
}
.list-th-value{ 
	font-weight: var(--head-weight); font-size: var(--head-size); 
	display: block; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;
}
.list-form{ 
	flex-grow: initial; height: auto;
	padding: var(--rows-padding) calc(var(--rows-padding) + var(--scroll-size)) var(--rows-padding) var(--rows-padding);
	background: var(--rows-background); border: var(--rows-border); box-shadow: var(--head-shadow);
}
.list-frow{
	background: var(--row-background); 
	border: var(--row-border); box-shadow: var(--row-shadow);
	border-bottom: var(--row-horizontal); outline: var(--row-outline);
}
.list-rows{
	flex-grow: 1; overflow-y: scroll; padding: var(--rows-padding);
	background: var(--rows-background); border: var(--rows-border); box-shadow: var(--rows-shadow);
}
.list-rows-page{ padding-bottom: var(--paging-height); }
.list-brow{ 
	margin-bottom: var(--rows-padding); background: var(--row-background); 
	box-shadow: var(--row-shadow); outline: var(--row-outline);
}
.list-brow:last-child{ margin-bottom: 0; }
.list-brow:hover{ background: var(--row-over-background); outline: var(--row-over-outline); }
.list-brow[checked]{ background: var(--row-checked-background); outline: var(--row-checked-outline); }
.list-brow:focus{ background: var(--row-focus-background); outline: var(--row-focus-outline); }
.list-td{ 
	display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; 
	flex-grow: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: var(--row-padding);
	border: var(--row-border); border-bottom: var(--row-horizontal); border-right: var(--row-vertical);
}
.list-brow:hover .list-td{ border: var(--row-over-border); border-bottom: var(--row-horizontal); border-right: var(--row-vertical); }
.list-brow[checked] .list-td{ border: var(--row-checked-border); border-bottom: var(--row-horizontal); border-right: var(--row-vertical); }
.list-brow:focus .list-td{ border: var(--row-focus-border); border-bottom: var(--row-horizontal); border-right: var(--row-vertical); }
.list-td:last-child{ border-right: none; }
.list-brow:last-child .list-td{ border-bottom: none; }
.list-td>*{ margin-top: calc(0.25 * var(--row-padding)); }
.list-td>*:first-child{ margin-top: 0; }
.list-row-data{ overflow: hidden; width: 100%; }
.list-row-data>*{ margin-top: 2pt; position: relative; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; }
.list-row-data>*:first-child{ margin-top: 0; }
.list-col-check{ flex: 0 0 3em; }
.list-td-actions{ flex-direction: row; }

/* Items lists */

.list-root{
	height: 100%; width: 100%; flex-grow: 1; overflow-y: auto; padding: var(--items-padding); 
	background: var(--items-background); border: var(--items-border); box-shadow: var(--items-shadow);
}
.list-page{ padding-bottom: var(--paging-height); }
.list-child{ margin-top: var(--rows-padding); padding-left: var(--items-padding); }
.list-li{ margin-top: var(--rows-padding); }
.list-root>.list-li{ padding: 0 var(--row-margin); }
.list-root>.list-li:first-child{ padding-top: var(--row-margin); }
.list-root>.list-li:last-child{ padding-bottom: var(--row-margin); }
.list-li:first-child{ margin-top: 0em; }
.list-item{
	display: flex; flex-direction: column; background: var(--row-background); box-shadow: var(--row-shadow);
	border: var(--row-border); border-top: var(--row-horizontal); outline: var(--row-outline);
}
.list-root>.list-li:first-child>.list-item{ border-top: var(--row-border); }
.list-item:hover{ 
	background: var(--row-over-background); outline: var(--row-over-outline); border: var(--row-over-border); 
	border-top: var(--row-over-horizontal, --row-over-border);
}
.list-item[checked]{ 
	background: var(--row-checked-background); outline: var(--row-checked-outline); border: var(--row-checked-border); 
	border-top: var(--row-checked-horizontal, --row-checked-border);
}
.list-item:focus{ 
	background: var(--row-focus-background); outline: var(--row-focus-outline); border: var(--row-focus-border); 
	border-top: var(--row-focus-horizontal, --row-focus-border);
}
.list-item-row{ display: flex; width: 100%; overflow: hidden; }
.list-item-row>*{ position: relative; }
.list-item-data{ display: flex; align-items: center; flex-grow: 1; position: relative; overflow: hidden; padding: var(--row-padding); }
.list-item-data>*{ margin-left: var(--row-padding); position: relative; }
.list-item-data>*:first-child{ margin-left: 0; }
.list-item-bottom{ padding: var(--row-padding); }
.list-item-actions{ padding: var(--row-padding); justify-content: flex-end; }

/* Cells lists */

.list-grid{
	height: 100%; width: 100%; flex-grow: 1; overflow-y: auto; display: grid; grid-template-columns: repeat(5, 20%); 
	grid-auto-rows: max-content; padding: calc(var(--cells-padding) / 2);
	background: var(--cells-background); border: var(--cells-border); 
	box-shadow: var(--cells-shadow);
}
.list-grid-page{ padding-bottom: var(--paging-height); } 
.list-wrap{ padding: calc(var(--cells-padding) / 2); }
.list-cell{
	display: flex; flex-direction: column; height: 100%; width: 100%; 
	position: relative; overflow: hidden;
	background: var(--row-background); box-shadow: var(--row-shadow);
	border: var(--row-border); border-bottom: var(--row-horizontal);
	outline: var(--row-outline); border-bottom: var(--row-horizontal);
}
.list-cell:hover{ 
	background: var(--row-over-background); outline: var(--row-over-outline); border: var(--row-over-border); 
}
.list-cell[checked]{ 
	background: var(--row-checked-background); outline: var(--row-checked-outline); border: var(--row-checked-border); 
}
.list-cell:focus{ 
	background: var(--row-focus-background); outline: var(--row-focus-outline); border: var(--row-focus-border); 
}
.list-cell-row{ padding: var(--row-padding); }
.list-cell-check{ position: absolute; top: var(--row-padding); left: var(--row-padding);  }
.list-cell-top{
	text-align: center; display: flex; flex-direction: column; align-items: center; width: 100%;
	background: var(--tools-background); padding: calc(1.5 * var(--row-padding));
}
.list-cell-data{
	text-align: center; display: flex; flex-direction: column; align-items: center;
	overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.list-cell-data>*{ margin-top: 2pt; position: relative; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; }
.list-cell-data>*:first-child{ margin-top: 0; }
.list-cell-actions{ padding-top: 0em; display: flex; align-items: center; justify-content: center; }

@media (max-width: 2000px){
	.list-grid{ grid-template-columns: repeat(4, 25%); }
}
@media (max-width: 1600px){
	.list-grid{ grid-template-columns: repeat(3, 33.33%); }
}
@media (max-width: 1200px){
	.list-grid{ grid-template-columns: repeat(2, 50%); }
}

/**
 * Action: core.view/edit
 **/
 
.edit-view{ height: 100%; width: 100%; display: flex; flex-direction: column; overflow: hidden; }
.edit-vertical-form{ flex-direction: row; }
.edit-submit{
	display: flex; align-items: center; justify-content: center; position: relative; z-index: 40;
	background: var(--submit-background); box-shadow: var(--submit-shadow); 
	border: var(--submit-border); border-top: var(--submit-top);
	height: var(--submit-height); width: 100%; flex: 0 0 var(--submit-height); 
	padding: var(--submit-padding);
}
.edit-buttons{
	display: flex; height: var(--tabs-height); flex: 0 0 var(--tabs-height);
	background: var(--tabs-background); position: relative; z-index: 30;
}
.edit-horizontal-buttons{
	align-items: var(--tabs-align); justify-content: flex-start; border-bottom: var(--tabs-active-border);
	padding: 0em var(--tabs-padding);
}
.edit-vertical-buttons{
	align-items: flex-start; flex-direction: column; border-right: var(--tabs-active-border);
	justify-content: flex-start; padding: var(--tabs-padding); height: 100%;
}
.edit-button{
	display: flex; align-items: center; justify-content: center; position: relative; z-index: 10;
	cursor: var(--button-cursor); height: var(--tabs-button-height); 
	background: var(--tabs-button-background); color: var(--tabs-button-color);
	font-weight: var(--tabs-button-weight); text-decoration: var(--tabs-button-decoration);
	border: var(--tabs-button-border); text-shadow: var(--tabs-button-shadow);
	white-space: nowrap; cursor: pointer;
}
.edit-horizontal-button{
	margin-bottom: -1px; margin-left: var(--tabs-button-margin);
	padding: 0em var(--tabs-button-padding); border-bottom: none;
}
.edit-horizontal-button:first-child{ margin-left: 0em; }
.edit-vertical-button{ width: 100%; margin-top: var(--tabs-button-margin); padding: var(--tabs-button-padding); }
.edit-vertical-button:first-child{ margin-top: 0em; }
.edit-button:hover{
	background: var(--tabs-over-background); color: var(--tabs-over-color);
	font-weight: var(--tabs-over-weight); text-decoration: var(--tabs-over-decoration);
	border: var(--tabs-over-border); text-shadow: var(--tabs-over-shadow);
}
.edit-horizontal-button:hover{ border-bottom: none; }
.edit-button:focus{ 
	z-index: 20;
	background: var(--tabs-focus-background); color: var(--tabs-focus-color);
	font-weight: var(--tabs-focus-weight); text-decoration: var(--tabs-focus-decoration);
	border: var(--tabs-focus-border); text-shadow: var(--tabs-focus-shadow);
}
.edit-horizontal-button:focus{ border-bottom: none; }
.edit-button.selected{
	background: var(--tabs-active-background); color: var(--tabs-active-color);
	font-weight: var(--tabs-active-weight); text-decoration: var(--tabs-active-decoration);
	border: var(--tabs-active-border); text-shadow: var(--tabs-active-shadow);
}
.edit-horizontal-button.selected{ border-bottom: 1px solid var(--tabs-active-background); }
.edit-button[disabled]{
	cursor: var(--button-disabled-cursor);
	background: var(--tabs-disabled-background); color: var(--tabs-disabled-color);
	font-weight: var(--tabs-disabled-weight); text-decoration: var(--tabs-disabled-decoration);
	border: var(--tabs-disabled-border); text-shadow: var(--tabs-disabled-shadow);
}
.edit-horizontal-button[disabled]{ border-bottom: none; }
.edit-button-text{ font-size: var(--tabs-button-size); flex-grow: 1; user-select: none; }
.edit-button-icon{ height: 1.25em; width: 1.25em; flex: 0 0 1.25em; margin-right: .5em; }
.edit-tabs{ flex-grow: 1; overflow: hidden; }
.edit-tab{ height: 100%; width: 100%; overflow-y: auto; }
.edit-tab .list-tools{ background: var(--tabs-active-background); }
.edit-rows{	height: 100%; overflow-y: auto; padding: 1.5em; display: flex; flex-direction: column; }
.edit-row, .edit-cols{ width: 100%; margin-top: .75em; }
.edit-row{ display: flex; flex-direction: column; }
.edit-row:first-child, .edit-cols:first-child{ margin-top: 0em; }
.edit-row>*, .edit-col>*{ margin-top: .5em; }
.edit-row>*:first-child, .edit-col>*:first-child{ margin-top: 0em; }
.edit-cols{ display: flex; }
.edit-cols>*{ margin-left: .75em; }
.edit-cols>*:first-child{ margin-left: 0em; }
.edit-label{ display: flex; align-items: center; width: 100%; }
.edit-label>*{ margin-left: .5em; }
.edit-label>*:first-child{ margin-left: 0em; }
.edit-label>.icon{ height: 1.25em; width: 1.25em; flex: 0 0 1.25em; }
.edit-text{ font-weight: bold; }
.edit-input{ display: flex; width: 100%; align-items: center; position: relative; }
.edit-option{ display: flex; align-items: center; position: relative; }
.edit-tooltip{ max-width: 30em; text-align: justify; }
.edit-props{ height: 100%; flex: 0 0 var(--props-width); background: var(--props-background); box-shadow: var(--props-shadow); }
.edit-props-left{ border-right: var(--props-border); }
.edit-props-right{ border-left: var(--props-border); }
.edit-props-rows{ padding: var(--props-padding); }
.edit-props-row{
	background: var(--props-row-background); box-shadow: var(--props-row-shadow);
	border: var(--props-row-border); padding: var(--props-row-padding);
}

@media (max-width: 1200px){
	.edit-body{ flex-direction: column; overflow-y: auto; }
	.edit-props{ height: auto; flex: initial; width: 100%; border: none; border-bottom: var(--props-border); }
	.edit-buttons{ position: sticky; top: 0; }
	.edit-cols{ display: grid; }
	.edit-cols>*{ margin-left: 0em; margin-top: .75em; } 
	.edit-cols>*:first-child{ margin-top: 0em; } 
}

/**
 * Action: core.view/panel
 **/

.panel-view{ height: 100%; width: 100%; display: flex; flex-direction: column; }
.panel-center{ background: var(--cells-background); }
.panel-list{ width: min(100%, 60em); margin: auto; height: 100%; overflow: hidden; }
.panel-scroll{ height: 100%; width: calc(100% + var(--scroll-size)); padding: .5em; overflow-y: scroll; }
.panel-ul{ display: grid; grid-template-columns: 1fr 1fr 1fr; }
.panel-li, .panel-li-empty{ overflow: hidden; margin: calc(var(--cells-padding) / 2); }
.panel-li{ 
	background: var(--row-background); box-shadow: var(--row-shadow);
    border: var(--row-border); outline: var(--row-outline);
}
.panel-li-empty{
	background: var(--empty-background); box-shadow: var(--empty-shadow); 
	border: var(--empty-border); outline: var(--empty-outline);
}
.panel-link, .panel-link-empty{ 
	height: 8em; padding: 1em; text-decoration: none;  overflow: hidden;
	display: flex; flex-direction: column; align-items: center; justify-content: center; 
}

.panel-link:hover{ 
	text-decoration: none;
	background: var(--row-over-background); outline: var(--row-over-outline); border: var(--row-over-border); 
}
.panel-link[checked]{ 
	text-decoration: none;
	background: var(--row-checked-background); outline: var(--row-checked-outline); border: var(--row-checked-border); 
}
.panel-link:focus{ 
	text-decoration: none;
	background: var(--row-focus-background); outline: var(--row-focus-outline); border: var(--row-focus-border); 
}
.panel-icon{ margin: 0em auto .75em auto; height: 3em; display: block; }
.panel-texts{ width: 100%; overflow: hidden; text-align: center; line-height: 1em; }
.panel-texts>*{ margin-top: .125em; }
.panel-texts>*:first-child{ margin-top: 0em; }
.panel-text{ display: block; font-weight: bold; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.panel-comment{ display: block; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

@media (max-width: 1200px){
	.panel-list{ width: 100%; border: none; }
	.panel-ul{ grid-template-columns: 1fr 1fr; }
}