/******************************************************************
 ** CSS for Prospect Front-end Visualizer
 ** Uses Flexbox to create dynamically resized blocks. See technique at:
 **		http://railsware.com/blog/2014/12/02/flexbox-as-a-solution-for-browser-reflow-optimization/
 ** NOTES from above article:
 **		jQuery .show() & .hide() cannot be used on DIVs that use Flexbox; need to define hide style
 ** 	Browsers have inconsistent support for Flexbox (and some bugs); IE is unreliable
 ** Also see https://github.com/philipwalton/flexbugs
 **/

	/* Normalize box sizes! See: http://css-tricks.com/international-box-sizing-awareness-day/
	 */
*, *:before, *:after {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}

html {
	height: 100%;
	box-sizing: border-box;
	padding: 0;
	margin: 0;

	overflow: hidden;
}

body {
	min-height: 100%;

	display: flex;
	display: -webkit-box;
	display: -ms-flexbox;
	display: -webkit-flex;
	/*	display: -moz-box; -- This breaks current FireFox! */

	flex-direction: column;
	-webkit-flex-direction: column;
	-moz-flex-direction: column;
	-ms-flex-direction: column;

	background-color: gray;

	font-family:Verdana, Arial, sans-serif;
	font-size: 14px;

	overflow: hidden;
	padding: 10px 10px 45px;
	margin: 0;
}

	/* For busy cursor */
body.waiting * {
	cursor: wait !important;
}

#wpadminbar {
	display: none;
	height: 0;
}

	/* To indicate input errors */
input[type=text].error {
	background-color: yellow;
	color: red;
}

	/* Class to prevent close icon on jQueryUI Dialog boxes */
.no-close .ui-dialog-titlebar-close {
	display: none;
}

	/* For maximal expansion of an element */
div.max-size {
	width: 100%;
	height: 100%;
}

div.max-v-size {
	height: 100%;
}

div.scroll-container {
	overflow: auto;
}

div.h-scroll {
	overflow-x: scroll;
}

div.v-scroll {
	overflow-y: scroll;
}

fieldset.radiogroup {
	margin: 0;
	padding: 0;
	margin-bottom: .125em;
	padding: .125em;
}

fieldset.radiogroup legend {
	margin: 0;
	padding: 0;
	font-weight: bold;
	font-size: 10px;
	margin-left: .125em;
	color: black;
}

ul.radio  {
	margin: 0;
	padding: 0;
	margin-left: .125em;
	list-style: none;
}

ul.radio label  {
	font-size: 10px;
}

ul.radio li {
	border: 1px transparent solid;
}

ul.radio li:hover, ul.radio li.focus {
	background-color: #E0E0E0;
	border: 1px gray solid;
}


	/* DOM structure of web page for visualizations:
	 * #command-bar
	 * #note
	 * #viz-frame
	 */

	/* Command Bar always along top row of window */
#command-bar {
	height: 28px;
	background-color: #56A0D3;		/* blue */
	color: #222;
	margin: 0px;
	padding: 12px 20px 30px;

	font-family:Verdana, Arial, sans-serif;
	font-size: 14px;

	vertical-align: middle;
}

#command-bar .title {
	margin-left: 3px;
	margin-top: 2px;
}

#command-bar button.plain {
	padding-top: 2px;
	padding-bottom: 3px;
	padding-right: 3px;
	padding-left: 3px;
	margin-bottom: 3px;
}

#command-bar .ui-icon {
	cursor: pointer;
}

#command-bar label {
	font-size: 11px;
}

#command-bar .home {
	float: right;
}

#pstate {
	background-color: white;
	color: black;
	border: 1px black solid;
	text-align: center;
	vertical-align: middle;
	padding: 3px;
	font-size: 10px;
}

#pstate.attn {
	background-color: yellow;
	color: red;
}

	/* Floating annotation */
#annote {
	position: absolute;
	z-index: 1001;		/* Leaflet uses 400, so we need larger; must also be > Legend */
	top: 29px;
	left: 60%;

	max-width: 38%;

	max-height: 300px;

	overflow-y: auto;

	padding: 6px;
	background-color: rgba(255, 255, 255, .8);

	color: #222;

	font-family: Times, "Times New Roman", Georgia, serif;
	font-size: 14px;

	-moz-box-shadow: 0 0 5px 5px rgba(0,0,0,0.3);
	-webkit-box-shadow: 0 0 5px 5px rgba(0,0,0,0.3);
	box-shadow: 0 0 5px 5px rgba(0,0,0,0.3);
}

	/* DOM Structure for Filters -- only in Highlight dialogs for Volumes
	 *		.filter-instance data-id (unique random #)
	 *			.filter-head
	 *			.filter-body
	 */

	/* Each Filter instance (inc Highlight dialogs) has this class as outer wrapper */
div.filter-instance {
	max-height: 300px;
	padding-left: 8px;
	font-size: 9px;
	margin: 1px;
}

div.filter-instance input[type=text] {
	padding: 1px;
}

	/* Title and control bar for each filter instance */
div.filter-head {
	height: 24px;
	padding: 2px;
	margin: 0;
	vertical-align: top;
	border-bottom: black 1px dotted;
}

	/* Area for each filter's GUI controls
	 * Used in Filter DIV and in Highlight dialogs
	 */
div.filter-body {
	white-space: nowrap;	/* don't allow controls to wrap to new line */
	padding: 0px;
	padding-left: 4px;
	margin: 0px;
}

	/* Group of items within a filter body */
div.filter-body div.cntrl-blck {
	display: inline-block;
	padding-top: 3px;
	padding-right: 4px;
	vertical-align: top;
}

/*
div.filter-body div.h-center {
	display: block;
	margin: 0 auto;
}
*/
div.filter-body input[type=text] {
	font-size: 9px;
	padding: 1px;
	margin: 1px;
}

div.filter-body svg {
	display: inline;
	margin: 2px;
	padding: 0px;
}

	/* For Filters with category range graphs */
div.filter-body svg .bar {
}

div.filter-body svg .axis text {
	font-size: 9px;
	color: black;
}

div.filter-body svg .axis path,
div.filter-body svg .axis line {
	fill: none;
	stroke: #000;
	shape-rendering: crispEdges;
}

div.filter-body svg .x.axis path {
	display: none;
}

div.filter-body svg g.brush .selection {
	stroke: #fff;
	fill-opacity: .125;
	shape-rendering: crispEdges;
}

div.filter-body svg g.brush path {
	stroke: midnightblue;
	stroke-width: 1px;
}

	/* DOM Structure of Visualization frames
	 * #viz-frame
	 *	 #view-frame-0
	 *		.view-controls
	 *			#toc-controls
	 *			#text-controls
	 *		.viz-content
	 *			#toc-frame
	 *			#text-frame
	 *	 #view-frame-1
	 *		.view-controls
	 *		.lgnd-container
	 *		.viz-content
	 *			.viz-result
	 *			.annote
	 */

	/* One or two displays go into this frame */
#viz-frame {
	flex: 1 1 auto;
	-webkit-flex: 1 1 auto;
	-moz-flex: 1 1 auto;
	-ms-flex: 1 1 auto;

	display: flex;
	display: -webkit-box;
	/*	display: -moz-box;  This breaks things! */
	display: -ms-flexbox;
	display: -webkit-flex;

	flex-direction: row;
	-webkit-flex-direction: row;
	-moz-flex-direction: row;
	-ms-flex-direction: row;

	font-family:Verdana, Arial, sans-serif;
}

/*#viz-frame button {
	font-family:Verdana, Arial, sans-serif;
}*/

#viz-frame span.btn-num-sel {
	font-size: 10px;
	border-radius: 5px;

	padding: 4px;

	-moz-box-shadow:    inset 0 0 4px #222222;
	-webkit-box-shadow: inset 0 0 4px #222222;
	box-shadow:         inset 0 0 4px #222222;

	cursor: pointer;
}

	/* The text display */
#view-frame-0 {
	width: 550px;

	flex: 1 1 auto;
	-webkit-flex: 1 1 auto;
	-moz-flex: 1 1 auto;
	-ms-flex: 1 1 auto;

	position: relative;
}

#view-frame-0.mini-text {
	width: 350px;
}

	/* The visualization display */
#view-frame-1 {
	width: calc(100% - 550px);

	flex: 1 1 auto;
	-webkit-flex: 1 1 auto;
	-moz-flex: 1 1 auto;
	-ms-flex: 1 1 auto;

	position: relative;
	margin-left: 2.5px;
}

#view-frame-1.mini-text {
	width: calc(100% - 350px);
}

div.view-controls {
	height: 28px;
	width: 100%;
	padding: 10px 20px 30px;
	margin: 0;
	vertical-align: middle;
	font-size: 14px;
	background: #eee;
	overflow: hidden;
}

div.view-controls button.ui-button {
	margin-left: 2px;
	margin-right: 2px;
}

div.view-controls .ui-icon {
	cursor: pointer;
}

div.view-controls label {
	font-size: 10px;
}

div#toc-controls {
	display: inline-block;
}
div#text-controls {
	display: inline-block;
}

	/* Right-justified (optional) toolbar */
div.view-controls div.iconbar
{
	padding: 2px;
	margin: 1px;
	margin-top: -4px;
/*	display: inline-block; */
	font-size: 9px;
	float: right;
}

div.viz-content {
	position: absolute;
	height: 100%;
	width: 100%;
}

	/* This works but will cause bookmark to scroll with text content rather than be fixed */
/* #view-frame-0 div.viz-content {
	overflow-y: scroll;
} */

	/* All visualization results rendered here */
	/* Styles are added to this DIV depending on whether visualization needs fixed size or content-wrapping size */
div.viz-result {
	margin: 0px;
	padding: 0;
}

	/* Visualization space takes as much as is necessary to show content results */
	/* Add to viz-result DIV */
div.viz-result.viz-fit-h {
	/*	height: -moz-fit-content;
		height: -webkit-fit-content;
		height: fit-content;
	 */

	/*	height: -moz-fit-content;
		height: -moz-max-content;
		height: -webkit-max-content;
		height: -o-max-content;
		height: max-content;
	*/
}
div.viz-result.viz-fit-w {
	/*	width: -moz-fit-content;
		width: -webkit-fit-content;
		width: fit-content;
	 */

	/*	width: -moz-fit-content;
		width: -moz-max-content;
		width: -webkit-max-content;
		width: -o-max-content;
		width: max-content;
	*/
}

	/* Visualization space takes all available screen space */
	/* Add to viz-result DIV */
div.viz-result.viz-max-h {
	height: 100%;
}
div.viz-result.viz-max-w {
	width: 100%;
}

div#toc-frame {
	margin: 0;
	padding: 2px;
	margin: 1px auto 1px auto;

	overflow-y: scroll;

	position: absolute;
	height: 100%;
	width: 100%;
}

div#toc-frame button.ui-widget {
	font-size: 10px;
}

div#toc-frame ul.toc-wrapper {
	list-style: none;
	list-style-position: inside;
	margin: 0px;
	padding: 0px;
	font-size: 12px;
	text-align: left;
}

div#toc-frame ul.toc-wrapper li {
	margin: 0px;
	margin-top: 3px;
	padding: 2px;
	border: 2px solid black;
	-webkit-border-radius: 6px;
	-moz-border-radius: 6px;
	border-radius: 6px;
	background-color: #56A0D3;
}

div#toc-frame ul.toc-wrapper li.sel {
	border-color: yellow;
}

div#toc-frame ul.toc-wrapper ul {
	list-style: none;
	margin: 0;
	padding: 0;
	padding-left: 9px;
}

div#toc-frame ul.toc-wrapper ul li {
	padding: 2px;
	border: 2px solid black;
	-webkit-border-radius: 4px;
	-moz-border-radius: 4px;
	border-radius: 4px;
	background-color: #ccc;
}

div#toc-frame ul.toc-wrapper ul li.sel {
	border: 2px yellow solid;
}

div#bookmark {
	padding: 4px 0 0 3px;
	margin: 0;
	height: 38px;
	width: 100%;
	background: white;
	overflow-x: scroll;
	white-space: nowrap;	/* don't allow elements to wrap to new line */
}

div#bookmark .bm {
	stroke-width: 1;
	stroke: none;
}

div#bookmark .bm.sel {
	fill: #FF6633;
/*	stroke: #FF6633; */
}

div#read-pane {
	margin: 0;
	padding: 3px;
	background-color: #eee;

	font-family: "Crimson Text",Georgia,"Times New Roman",Times,serif;
	font-size: 14px;
	font-weight: normal;

	overflow-y: scroll;
	position: absolute;
	height: calc(100% - 38px);
	width: 100%;
}

div#read-pane h1 {
	margin: 3px 0 0 0;
	padding: 5px 3px 3px 3px;
	border: 2px solid black;
	-webkit-border-radius: 6px;
	-moz-border-radius: 6px;
	border-radius: 6px;
	background-color: #56A0D3;
	font-weight: bold;
	font-size: 22px;
	text-shadow: 2px 2px 2px grey;
	line-height: 1em;
}

div#read-pane h2 {
	margin: 3px 0 0 0;
	padding: 0px;
	border-bottom: 2px solid black;
	font-weight: bold;
	font-size: 18px;
	line-height: 1.1em;
}

div#read-pane h3 {
	margin: 3px 0 0 0;
	padding: 0px;
	border-bottom: 1px dotted black;
	font-weight: bold;
	font-size: 16px;
	line-height: 1.1em;
}

div#read-pane p {
	font-weight: normal;
	font-size: 16px;
	line-height: 1.2em;
}

div#read-pane h1 + p:first-letter,
div#read-pane h2 + p:first-letter,
div#read-pane h3 + p:first-letter {
	float: left;
	font-size: 325%;
	text-shadow: 2px 2px 2px grey;
	margin: -5px 0 -5px 0;
	padding: 0 2px 0 0;
	height:.7em;
	line-height:.85em;
}

div#read-pane blockquote {
	font-family: "Crimson Text",Georgia,"Times New Roman",Times,serif;
	font-size: 14px;
	font-weight: normal;
	line-height: 1.1em;
	margin-left: 20px;
}

div#read-pane img {
	margin: 3px;
	border: 1px solid #cccccc;

	max-width: 98%;
}

div#read-pane a {
	color: #00008B;
	font-weight: bold;
}

div#read-pane a.no-data {
	color: #0099FF;
}

div#read-pane a.sel {
	color: #FF8C00;
	border: 1px solid #FF8C00;
}

	/* Legends are semi-opaque overlays on content in top-left corner (z = 1000)
	 * lgnd-container (outer)
	 *		lgnd-handle (draggable)
	 *			lgnd-update
	 *		lgnd-scroll (scrolling area)
	 * 		lgnd-template (DIV per template): data-index = index of Template
	 *			lgnd-title
	 *			lgnd-locate (Attribute that locates object on visualization): data-id = Attribute ID
	 *			lgnd-select (menu with list of Legend Attributes)
	 *				option value = (full) Attribute ID
	 *			lgnd-sh	  (show/hide option)
	 *			lgnd-group  (DIV of feature selections for a Template)
	 *				lgnd-value  (single legend feature): data-index = index of legend entry in array
	 *					lgnd-viz   (color or icon)
	 *
	 * NOTES:	Any line that begins with a checkbox is DIV of class 'lgnd-entry'.
	 * 			The checkbox itself is class lgnd-entry-check
	 *			On z-index: http://philipwalton.com/articles/what-no-one-told-you-about-z-index/
	 *				https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Understanding_z_index/Adding_z-index
	 */
div.lgnd-container {
	position: absolute;
	top: 60px;
	left: 10px;

	z-index: 1000;		/* Leaflet uses 400, so we need larger number */

	width: 270px;

	height: 265px;

	padding: 4px;
	background-color: rgba(255, 255, 255, .8);

	color: #222;
	font-family: Verdana, Arial, sans-serif;

	-moz-box-shadow: 0 0 5px 5px rgba(0,0,0,0.3);
	-webkit-box-shadow: 0 0 5px 5px rgba(0,0,0,0.3);
	box-shadow: 0 0 5px 5px rgba(0,0,0,0.3);
}

div.lgnd-container.min {
	height: 28px;
}

div.lgnd-container > div.lgnd-handle {
	height: 22px;
	background-color: #A8A8A8;
	border: 1px black dotted;
	cursor: move;

	margin-bottom: 3px;
	padding-top: 2px;

	font-size: 10px;

	-moz-box-shadow: 0 0 2px 2px rgba(0,0,0,0.3);
	-webkit-box-shadow: 0 0 2px 2px rgba(0,0,0,0.3);
	box-shadow: 0 0 2px 2px rgba(0,0,0,0.3);
}

	/* Button to force Re-render */
div.lgnd-container > div.lgnd-handle > button.lgnd-update {
	height: 18px;
	margin: 2px;
	margin-top: 0;
	padding: 1px;
	padding-top: 1px;

	float: right;

	background-color: white;

	font-size: 9px;
	color: #0066FF;
	font-weight: bold;
}

div.lgnd-container > div.lgnd-handle > button.lgnd-update:disabled {
	opacity: 0.65;
	cursor: not-allowed;
	color: grey;
}

div.lgnd-container > div.lgnd-handle button {
	vertical-align: middle;
}

div.lgnd-container > div.lgnd-handle label {
	vertical-align: middle;
	font-weight: bold;
}

div.lgnd-scroll {
	overflow-y: auto;
	height: 232px;
}

div.lgnd-title {
	font-size: 14px;
	font-weight: bold;
	border-bottom: 1px dotted #111;
	margin-bottom: 6px;
}

	/* A selectable entry that has a checkbox */
div.lgnd-entry {
	font-size: 11px;
	height: 22px;
	font-weight: normal;
	padding: 0;
	margin: 0;

	overflow: hidden;

	position: relative;
}

	/* Legend Attribute checkbox */
div.lgnd-entry-check {
	cursor: pointer;
}

	/* visual marker in a lgnd-entry */
div.lgnd-viz {
	border: 1px solid dotted;

	width: 18px;
	height: 18px;

	display: inline-block;
	vertical-align: middle;
}

div.lgnd-viz-empty {
	background: -webkit-linear-gradient(white, gray, white); /* For Safari 5.1 to 6.0 */
	background: -o-linear-gradient(white, gray, white); /* For Opera 11.1 to 12.0 */
	background: -moz-linear-gradient(white, gray, white); /* For Firefox 3.6 to 15 */
	background: linear-gradient(white, gray, white); /* Standard syntax */
}

div.lgnd-value-title {
	vertical-align: middle;
}

	/* Selection List shows what Records are currently selected
	 * sellist (outer)
	 *		sellist-handle (draggable)
	 *			sellist-close (button)
	 *		sellist-scroll (scrolling area)
	 *			sellistid (entry)
	 */
div.sellist {
	position: absolute;
	top: 60px;
	left: 10px;

	z-index: 999;		/* Leaflet uses 400, so we need larger number */

	width: 270px;

	height: 265px;

	padding: 4px;
	background-color: rgba(255, 255, 255, .8);

	color: #222;
	font-family: Verdana, Arial, sans-serif;

	-moz-box-shadow: 0 0 5px 5px rgba(0,0,0,0.3);
	-webkit-box-shadow: 0 0 5px 5px rgba(0,0,0,0.3);
	box-shadow: 0 0 5px 5px rgba(0,0,0,0.3);
}

div.sellist.min {
	height: 28px;
}

div.sellist > div.sellist-handle {
	height: 22px;
	background-color: #A8A8A8;
	border: 1px black dotted;
	cursor: move;

	padding-top: 2px;
	margin-bottom: 3px;

	-moz-box-shadow: 0 0 2px 2px rgba(0,0,0,0.3);
	-webkit-box-shadow: 0 0 2px 2px rgba(0,0,0,0.3);
	box-shadow: 0 0 2px 2px rgba(0,0,0,0.3);

	font-size: 10px;
}

div.sellist > div.sellist-handle label {
	vertical-align: middle;
	font-weight: bold;
}

div.lgnd-container > div.lgnd-handle button {
	vertical-align: middle;
}

div.sellist > div.sellist-scroll {
	overflow-y: auto;
	height: 232px;
}

div.sellist > div.sellist-scroll > div.sellist-rec {
	background-color: white;
	color: black;
	font-size: 10px;
	white-space: nowrap;
	overflow-x: hidden;
	margin: 0;
	padding: 2px;
	cursor: pointer;
}

	/* Min-max button appears on both Legend and Selection List */
button.minmax {
	float: right;
}


/* MODAL DIALOGS
 * =============
 */

span.ui-dialog-title {
	font-size: 12px;
}

div.ui-dialog-content {
	font-size: 11px;
}

div.ui-dialog-content p {
	margin: 2px;
	padding: 0;
}

div.ui-dialog-content input[type=text] {
	margin-bottom: 2px;
}

div.scroll-container ul {
	list-style-position: inside;
	margin: 3px;
	padding: 0;
	padding-left: 4px;
	cursor: pointer;
}

div.scroll-container .selected {
	color: #56A0D3;
}

	/* In Dialogs for showing and managing Readings */
#reading-slist {
	height: 100%;
}

#reading-slist li {
	line-height: 1.2em;
}

#reading-mlist {
	font-size: 12px;
	height: 100%;
}

#reading-mlist li {
	line-height: 1.5em;
}

#reading-mlist button {
	font-size: 7px;
	padding: 0;
	padding-left: 2px;
	padding-right: 2px;
	margin: 0;
	margin-left: 2px;
	margin-right: 2px;
	float: right;
}

	/* Opacity dialogs */
div.op-layer {
	font-size: 11px;
	vertical-align: middle;
}

div.op-layer input {
	vertical-align: middle;
}

	/* Inspector Modal
	 * ===============
	 */

#dialog-inspector {
	font-size: 12px;
}

#dialog-inspector .inspector-header {
	font-size: 12px;
	text-align: center;
	padding-bottom: 3px;
	margin-bottom: 4px;
	border-bottom: dotted 1px;
}

#inspect-content img {
	width: -moz-fit-content;
	width: -webkit-fit-content;
	width: fit-content;
	max-width: 100%;
}

#inspect-content .att-label {
	font-weight: bold;
	vertical-align: top;
}

/* jQueryUI overrides
 * ==================
 */

.ui-dialog-title, .ui-dialog-content, .ui-dialog-buttonpane {
	font-size: small;
	font-family: Verdana, Arial, sans-serif;
}

	/* To minimize size of ui buttons */
.ui-button-icon-only {
	width: 1.4em !important;
	height: 1.4em !important;
}

label {
/*	display: inline-block; */
	width: 5em;
}

@-webkit-keyframes pulse {
	0% { border: 1px solid green; }
	10% { border: 4px solid green; }
	75% { border: 4px solid yellow; }
	100% { border: 2px solid green; }
}
@-moz-keyframes pulse {
	0% { border: 1px solid green; }
	10% { border: 4px solid green; }
	75% { border: 4px solid yellow; }
	100% { border: 2px solid green; }
}
@-ms-keyframes pulse {
	0% { border: 1px solid green; }
	10% { border: 4px solid green; }
	75% { border: 4px solid yellow; }
	100% { border: 2px solid green; }
}
@keyframes pulse {
	0% { border: 1px solid green; }
	10% { border: 4px solid green; }
	75% { border: 4px solid yellow; }
	100% { border: 2px solid green; }
}

.ui-button.pulse {
	-webkit-animation-name: pulse;
	-webkit-animation-duration: 1.25s;
	-webkit-animation-iteration-count: infinite;
	-moz-animation: pulse 1.25s infinite;
	-ms-animation: pulse 1.25s infinite;
	animation: pulse 1.25s infinite;
}

	/* z-index must be greater than Leaflet's and Legend */
.ui-front {
	z-index: 1000 !important;
}

.ui-dialog {
	z-index: 2000 !important;
}

/* Visualization styles
 * ====================
 */

	/* Label separating Template tables */
div.template-label {
	display: block;
	background-color: white;
	color: #56A0D3;
	padding-left: 4px;

	font-weight: bold;
	font-size: 16px;
}

	/* Map Styles */
.maplbl {
	text-align: center;
	margin-top: -21px;

	width: 160px;
/*	Below did not work for some reason
	width: -moz-fit-content;
	width: -webkit-fit-content;
	width: fit-content; */
}

.maplbl div {
	position: relative;
	font-size: 10px;
	left: -50%;
}

	/* Cards styles */
div.cards {
	padding: 4px;

	display: -webkit-box;
	display: -moz-box;
	display: -ms-flexbox;
	display: -webkit-flex;
	display: flex;

	flex-direction: row;
	-webkit-flex-direction: row;
	-moz-flex-direction: row;
	-ms-flex-direction: row;

	flex-wrap: wrap;
	-webkit-flex-wrap: wrap;
	-moz-flex-wrap: wrap;
	-ms-flex-wrap: wrap;

	justify-content: space-around;
	-webkit-justify-content: space-around;
	-moz-justify-content: space-around;
	-ms-justify-content: space-around;

	align-items: flex-start;
	-webkit-align-items: flex-start;
	-moz-align-items: flex-start;
	-ms-align-items: flex-start;

	align-content: flex-start;
	-webkit-align-content: flex-start;
	-moz-align-content: flex-start;
	-ms-align-content: flex-start;
}

div.card {
	margin: 3px;
	border: black solid 1px;
	box-shadow: 3px 2px 3px rgba(0, 0, 0, 0.3);
	padding: 3px;
	overflow: hidden;

	transition: all 0.6s ease;
	-webkit-transition: all 0.6s ease;
	-moz-transition: all 0.6s ease;
	-ms-transition: all 0.6s ease;
}

div.card:hover {
	transform: scale(1.5);
	-webkit-transform: scale(1.5);
	-moz-transform: scale(1.5);
	-ms-transform: scale(1.5);

	z-index: 1001 !important;
}

div.card.obj-sel {
	border: yellow solid 2px;
}

div.card.wt {
	width: 100px;
}
div.card.wm {
	width: 150px;
}
div.card.ww {
	width: 200px;
}
div.card.hs {
	height: 124px;
}
div.card.hm {
	height: 174px;
}
div.card.ht {
	height: 224px;
}

div.card > div.card-title {
	height: 14px;
	font-size: 9px;
	font-weight: bold;
	vertical-align: middle;
	overflow: hidden;
	color: black;
	background-color: #F0F8FF;
	border: 1px black solid;
	padding-left: 2px;
}

div.card.obj-sel > div.card-title {
	background-color: yellow;
}

div.card > div.card-body {
	display: -webkit-box;
	display: -moz-box;
	display: -ms-flexbox;
	display: -webkit-flex;
	display: flex;

	align-items: flex-start;
	-webkit-align-items: flex-start;
	-moz-align-items: flex-start;
	-ms-align-items: flex-start;

	font-size: 10px;
	font-weight: normal;
}

div.card.wt > div.card-body > img {
	margin: 2px;
	width: 40px;
}
div.card.wm > div.card-body > img {
	margin: 2px;
	width: 50px;
}
div.card.ww > div.card-body > img {
	margin: 3px;
	width: 70px;
}
div.card.wt > div.card-body > img.full {
	margin: 2px;
	width: 92px;
}
div.card.wm > div.card-body > img.full {
	margin: 2px;
	width: 144px;
}
div.card.ww > div.card-body > img.full {
	margin: 2px;
	width: 190px;
}

div.card > div.card-body > div.card-cnt {
	color: white;

	flex-grow: 1;
	-webkit-flex-grow: 1;
	-moz-flex-grow: 1;
	-ms-flex-grow: 1;
}

	/* Directory styles */
table.viz-directory {
	color: #666;
	text-shadow: 1px 1px 0px #fff;
	background: #eaebec;
	border:#ccc 1px solid;

	-moz-border-radius:3px;
	-webkit-border-radius:3px;
	border-radius:3px;

	-moz-box-shadow: 0 1px 2px #d1d1d1;
	-webkit-box-shadow: 0 1px 2px #d1d1d1;
	box-shadow: 0 1px 2px #d1d1d1;
}

table.viz-directory th {
	padding: 3px;
	border-top: 1px solid #fafafa;
	border-bottom: 1px solid #e0e0e0;

	background: #ededed;
	background: -webkit-gradient(linear, left top, left bottom, from(#ededed), to(#ebebeb));
	background: -moz-linear-gradient(top,  #ededed,  #ebebeb);

	font-weight: bold;
	font-size: 11px;
}


table.viz-directory th.sel {
	text-decoration: underline;
}

table.viz-directory th:first-child {
	text-align: left;
}

table.viz-directory tr:first-child th:first-child {
	-moz-border-radius-topleft:3px;
	-webkit-border-top-left-radius:3px;
	border-top-left-radius:3px;
}

table.viz-directory tr:first-child th:last-child {
	-moz-border-radius-topright:3px;
	-webkit-border-top-right-radius:3px;
	border-top-right-radius:3px;
}

table.viz-directory tr {
	text-align: center;

	font-weight: normal;
	font-size: 11px;
}

table.viz-directory td:first-child {
	text-align: left;
	border-left: 0;
}

table.viz-directory td {
	padding: 3px;
	border-top: 1px solid #ffffff;
	border-bottom:1px solid #e0e0e0;
	border-left: 1px solid #e0e0e0;

	background: #fafafa;
	background: -webkit-gradient(linear, left top, left bottom, from(#fbfbfb), to(#fafafa));
	background: -moz-linear-gradient(top,  #fbfbfb,  #fafafa);
}

table.viz-directory td img {
	max-width: 40px;
}

table.viz-directory tr:nth-child(even) {
	background: #f6f6f6;
	background: -webkit-gradient(linear, left top, left bottom, from(#f8f8f8), to(#f6f6f6));
	background: -moz-linear-gradient(top, #f8f8f8, #f6f6f6);
}

table.viz-directory tr:last-child td {
	border-bottom: 0;
}

table.viz-directory tr:last-child td:first-child {
	-moz-border-radius-bottomleft:3px;
	-webkit-border-bottom-left-radius:3px;
	border-bottom-left-radius:3px;
}

table.viz-directory tr:last-child td:last-child {
	-moz-border-radius-bottomright:3px;
	-webkit-border-bottom-right-radius:3px;
	border-bottom-right-radius:3px;
}

table.viz-directory tr.obj-sel td {
	background: yellow;
}

	/* For all svg graphs in visualization Views */
div.viz-result svg {
/*	margin: 2px auto; */
	margin: 2px;
	padding: 0px;
}

div.viz-result svg .axis text {
	font-family:Verdana, Arial, sans-serif;
	font-size: 10px;
	color: black;
}

div.viz-result svg .axis path,
div.viz-result svg .axis line {
	fill: none;
	stroke: #000;
	shape-rendering: crispEdges;
}

	/* Pinboard styles */
/* svg circle.recobj
{
	cursor: pointer;
}

svg circle.recobj.obj-sel
{
	stroke: yellow;
	stroke-width: 1;
	fill: none;
}

svg .recline
{
	stroke-opacity: 1;
	stroke-width: 2px;
	pointer-events: none;
} */

	/* Timeline styles
	 * DOM structure
	 * 	tl-vf	(Outermost SVG)
	 *		tl-band tl-b-<vf>-0		(Macro)
	 *			tl-cnt	(containing rect)
	 *				tl-lgnd-bck		(Legend color background)
	 *				tl-axis axis-<vf>-0
	 *				tl-event
	 *		tl-band tl-b-<vf>-1 	(Zoom)
	 *			tl-cnt	(containing rect)
	 *				tl-lgnd-bck		(Legend color background)
	 *				tl-lgnd-ttl		(Legend era title)
	 *				tl-axis axis-<vf>-1
	 *				tl-event
	 **/

svg.tl-vf {
	border-style: solid;
	border-width: 1px;
	border-color: black;
	background-color: #F0F0F0;
}

	/* Inner space containing chart */
svg.tl-vf .chart {
	fill: #EEEEEE;
}

	/* axis labels */
svg.tl-vf .axis {
	fill: #808080;
	font-family:Verdana, Arial, sans-serif;
	font-size: 10px;
}

	/* axis tick marks */
svg.tl-vf .axis line {
	stroke-width : 1;
	stroke: gray;
	shape-rendering: crispEdges;
}

	/* axis line */
svg.tl-vf .axis path {
	stroke-width : 1;
	stroke: gray;
	shape-rendering: crispEdges;
}

	/* band background */
svg.tl-vf .band {
	fill: #FAFAFA;
}

	/* Legend "Epoch" Background Label */
svg.tl-vf .lgBdLbl {
	font-family:Verdana, Arial, sans-serif;
	font-weight: bold;
}

svg.tl-vf .event.range {
	fill: #AAFFFF;
	cursor : default;
	pointer-events: true;
	stroke-width: 1px;
	stroke: black;
	stroke-opacity: 1;
}

svg.tl-vf .event.instant {
	cursor: default;
	pointer-events: true;
	stroke-width: 1px;
	stroke: black;
	stroke-opacity: 1;
}

svg.tl-vf .event.obj-sel
{
	stroke: yellow;
	stroke-width: 2px;
}

svg.tl-vf .instantLbl {
	font-family:Verdana, Arial, sans-serif;
	font-size: 10px;
	font-weight: 300;
	fill: #000000;	/* Pixels must be on/white (#FFFFFF) to create XOR effect */
	stroke-width: 0;
	stroke: none;
	shape-rendering: crispEdges;
}

svg.tl-vf .rangeLbl {
	font-family:Verdana, Arial, sans-serif;
	font-size: 10px;
	font-weight: 300;
	stroke: none;
	stroke-width: 0;
	shape-rendering: crispEdges;
}

svg.tl-vf .bLbl {
	fill: #99CCCC;
}

svg.tl-vf .bMinMaxLbl {
	fill: #000066;
	font-family:Verdana, Arial, sans-serif;
	font-size: 10px;
	font-weight: bold;
}

svg.tl-vf g.brush .selection {
	stroke: midnightblue;
	fill: yellow;
	fill-opacity: .2;
}

svg.tl-vf g.brush path {
	stroke: midnightblue;
	stroke-width: 1px;
}

	/* TextStream styles */
div.viz-textstream {
	margin: 0;
	padding: 0;
}

div.viz-textstream div.recitem {
	display: inline-block;
	padding: 2px;
	margin: 3px;
	background-color: white;
	border: black solid 1px;
}

div.viz-textstream div.recitem.obj-sel {
	border: yellow solid 2px;
}

	/* Pinboard styles */
	/* recobj also reused by TimeRings */
/* svg circle.recobj
{
	cursor: pointer;
}

svg circle.recobj.obj-sel
{
	stroke: yellow;
	stroke-width: 1;
	fill: none;
} */

svg line.recline
{
	stroke-opacity: 1;
	stroke-width: 2px;
	pointer-events: none;
}

/*	gnode > circle / path used by Pinboard, Network Wheel, EgoGraph, TimeRing */
	/* Changed g.node > g.gnode */
svg g.gnode
{
	cursor: pointer;
}

svg g.gnode circle {
	stroke: black;
	stroke-width: 1px;
}

svg g.gnode circle.obj-sel {
	stroke: yellow;
	stroke-width: 2px;
}

svg g.gnode path {
	stroke: black;
	stroke-width: 1px;
}

svg g.gnode path.obj-sel {
	stroke: yellow;
	stroke-width: 2px;
}

svg g.gnode image {
}

svg g.gnode image.obj-sel {
	outline: 1px solid yellow;
}

svg g.gnode text {
	font-family:Verdana, Arial, sans-serif;
	font-size: 11px;
}

svg path.plink
{
	stroke-opacity: .7;
	fill: none;
	pointer-events: none;
}

svg path.plink.thick
{
	stroke-opacity: 1;
	stroke-width: 2px;
}

	/* cnode is used by Bucket Matrix */
		/* circle.gnode > circle.cnode */
svg circle.cnode
{
	cursor: pointer;
	stroke: black;
	stroke-width: 1px;
}

svg circle.cnode.obj-sel
{
	stroke: yellow;
	stroke-width: 2px;
}

svg line.llink
{
	stroke-opacity: 1;
	stroke-width: 2px;
	fill: none;
	pointer-events: none;
}

	/* Network Wheel styles */
/* svg .node
{
	cursor: pointer;
}

svg .node circle.obj-sel {
	stroke: yellow;
	stroke-width: 2px;
}

svg .node text {
	font-family:Verdana, Arial, sans-serif;
	font-size: 11px;
}

svg path.link
{
	stroke-opacity: .7;
	fill: none;
	pointer-events: none;
}

svg path.link.thick
{
	stroke-opacity: 1;
	stroke-width: 2px;
} */

	/* Network Graph styles */
/* svg circle.gnode
{
	cursor: pointer;
}

svg circle.gnode.obj-sel {
	stroke: yellow;
	stroke-width: 2px;
}

svg path.glink
{
	stroke-opacity: 1;
	stroke-width: 2px;
	fill: none;
	pointer-events: none;
} */

svg path.bmlink
{
	stroke-opacity: .25;
	stroke-width: 1px;
	fill: none;
	pointer-events: none;
}

svg path.bmlink.on
{
	stroke-opacity: 1;
	stroke-width: 2px;
}

svg text.s-lbl-text {
	font-family:Verdana, Arial, sans-serif;
	fill: black;
	text-anchor: start;
}

svg text.t-lbl-txt {
	font-size: 12px;
	font-weight: bold;
}

svg text.b-lbl-txt {
	font-size: 10px;
	font-weight: normal;
}


/* Specific Filter styles
 * ======================
 */

	/* Outer container for Vocabulary filters */
div.filter-vocab-container {
	display: -webkit-box;
	display: -moz-box;
	display: -ms-flexbox;
	display: -webkit-flex;
	display: flex;

	flex-direction: row;
	justify-content: flex-start;

	margin-bottom: 2px;
}

	/* Container for Hide/Show All checkbox entry */
div.filter-vocab-hsa {
	min-width: 80px;
	margin: 2px;
}

	/* Vertical container for Vocab parent and any children */
div.filter-vocab-entry {
	display: inline-block;

	min-width: -webkit-min-content;
	min-width: -moz-min-content;
	min-width: min-content;

	margin: 2px;
}

div.filter-vocab-row {
	display: inline-block;
}

div.filter-vocab-bar {
	height: 4px;
	width: 50px;
	margin: 0px;
	margin-left: 18px;
	padding: 0px;
	border: 1px black dotted;
}

/** ABOUT dialog
 **/

#dialog-about img {
	/* Webkit for Chrome and Safari */
	-webkit-transform: scale(.2, .2);

	/* Webkit for Mozila Firefox */
	-moz-transform: scale(.2, .2);

	/* Webkit for IE( Version: 11, 10 ) */
	-ms-transform: scale(.20, .20);
}

#dialog-about img.zoomin {
	/* Webkit for Chrome and Safari */
	-webkit-transform: scale(1.0, 1.0);
	-webkit-transition-duration: 800ms;
	-webkit-transition-timing-function: ease-out;

	/* Webkit for Mozila Firefox */
	-moz-transform: scale(1.0, 1.0);
	-moz-transition-duration: 800ms;
	-moz-transition-timing-function: ease-out;

	/* Webkit for IE( Version: 11, 10 ) */
	-ms-transform: scale(1.0, 1.0);
	-ms-transition-duration: 800ms;
	-ms-transition-timing-function: ease-out;
}

/** WIDGETS
 **/

#yt-widget {
	margin: 3px;
}

#na-widget {
	margin: 3px;
}

#xscript-tbl {
	margin-top: 4px;
	max-height: 220px;
	overflow-y: scroll;
	table-layout: fixed;
}

#xscript-tbl div.row {
	display: table-row;
	margin: 2px;
	border: blue 1px solid;
}

	/* Create odd-even background toggle */
#xscript-tbl div.row:nth-child(odd) {
	background: #ddd;
}

#xscript-tbl div.timecode {
	display: table-cell;
	line-height: 1.2em;
	padding: 2px;
	cursor: pointer;
	width: 84px;
}

	/* playhead */
#xscript-tbl div.timecode.current {
	background-color: #007fff;
	color: #fff;
}

#xscript-tbl div.timecode:hover {
	background-color: #0055bb;
	color: #fff;
}

#xscript-tbl div.xscript {
	font-size: 12px;
	display: table-cell;
	vertical-align: top;
	line-height: 1.2em;
	padding: 2px;
	width: auto;
}
