body {
	font-family: sans-serif;
}


.overlay, .splash {
	position: absolute;
	top: 0px;
	left: 0px;
	width: 100%;
	height: 100%;
	z-index: 9000;
}
.overlay {
	display: none;
}

.overlay-message {
	color: gray;
	margin: 30px;
	font-weight: bold;
	font-style: italic;
}

.splash {
	color: gray;
	background-color: white;
	opacity: 1.0;
}
.overlay .background, .overlay .content {
	position: absolute;
	top: 0px;
	left: 0px;
	width: 100%;
	height: 100%;
	color: gray;

	opacity: 1.0;

	text-align: center:
}
.overlay .background {
	background-color: white;
	opacity: 0.5;
	z-index: 9000;
}

.overlay .content {
	overflow: auto;
	opacity: 0.9;
	z-index: 9010;
}

.overlay *, .splash * {
	color: gray;
}

.options {
	position: relative;
	left: 12.5%;
	width: 75%;
	opacity: 1.0;
	padding: 20px;
	margin: 5px;
	border: solid 1px silver;
	background-color: white;
}

.options .option {
	position: relative;
	border-bottom: solid 1px silver;
	padding: 10px;
	margin-top: 15px;
}
.options .option:last-child {
	border-bottom: none; 
	margin-bottom: 30px;
}

.options .option.disabled {
	opacity: 0.5;
}

.options .group:first-child {
	margin-top:20px;
}
.options .group:last-child {
	margin-bottom:20px;
}

.options .group .title {
	border-bottom: solid 1px gray;
	font-weight: bold;
	font-size: large;
}
.options .option .title {
	font-weight: bold;
	font-size: medium;
	border-bottom: none;
}

.options .doc {
	display: inline;
	font-size: small;
}

.options .value {
	position: absolute;
	right: 20px;
	bottom: 10px;
	width: 40%;
	text-align: right;
	/*cursor: hand;*/
}


.image, .image-overlay, .current-indicator {
	width: 350px;
	height: 350px;
}

.image {
	position: relative;
	display: inline-block;

	background: no-repeat 50% black;
	background-size: contain;

	opacity: 0.3;

	cursor: hand;
}	

.image-overlay {
	position: absolute;
	display: none;
	content: '';
	top: 0px;
	left: 0px;
	background: no-repeat 50% black;
	background-size: contain;
}


.current-indicator {
	display: none;
	cursor: hand;
}


.opaque-current-ribbon .current-indicator {
	display: block;
	position: absolute;
	z-index: 1000;
}
.opaque-current-ribbon .current-indicator div {
	position: relative;
	border: solid gray 4px;

	margin-top: -2px;
	margin-left: -4px;

	width: 100%;
	height: 100%;

	cursor: hand;
}

.opaque-current-ribbon.dot-indicator .current-indicator {
	display: block;
	position: absolute;
}
.opaque-current-ribbon.dot-indicator .current-indicator div {
	position: absolute;
	border: solid silver 5px;

	bottom: 5px;
	right: 5px;

	width: 5px;
	height: 5px;
}

.opaque-current-ribbon .current.ribbon .image {
	/* XXX this should actiually be 1.0, but that makes the webkit 
	 * 	renderer misbehave, so this is a workaround
	 */
	opacity: 0.9999;
}


.mock-image {
	background: blue;
}


.demo-buttons {
	margin: 15px
	border: groove 2px;
	
	opacity: 0.2;
}


.demo-buttons:hover {
	opacity: 1;
}


.viewer {
	position: relative;
	width: 900px;
	height: 500px;

	background: white;
}


.controller, .controller-mini {
	position: absolute;

	overflow: hidden;
	width: 50px;

	height: 100%;

	/* keep these on top of the normal elements but below the high 
	 * visibility 9000+ crowd...
	 */
	z-index: 5000;

	opacity: 0.5;
}

.controller-mini {
	width: 0px;
}

.hidden-controls .controller-mini {
	width: 25px;
}


.controller.left {
	left: 0px;
}
.controller.right {
	right: 0px;
}

.hidden-controls .controller.left {
	width: 0px;
}
.hidden-controls .controller.right {
	width: 0px;
}

.controller-mini.left {
	left: 0px;
}
.controller-mini.right {
	right: 0px;
}


.screen-button {
	text-align: center;
	width: 100%;
	height: 25%; 

	color: black;

	-moz-user-select: none;
	-webkit-user-select: none;
	-o-user-select: none;
	-ms-user-select: none;
	user-select: none;
}


.controller-mini .screen-button {
	height: 50%;
}


.toggle-single, .zoom-in {
	border-top: solid gray 1px;
	height: 10%;
}


.toggle-single, .fit-three, .zoom-in, .zoom-out {
	height: 10%;
}


.settings, .toggle-wide {
	height: 5%;
}

.info {
	display: none;
	position: absolute;
	width: 100%;
	height: 100%;
	
	color: gray;

	opacity: 0.0;
}

.display-info .info {
	display: block;
	opacity: 0.3;
}

.info .top-left {
	position: absolute;
	top: 0px;
	left: 0px;
	padding-left: 50px;
}
.info .top-right {
	position: absolute;
	top: 0px;
	right: 0px;
	padding-right: 50px;
}
.info .bottom-left {
	position: absolute;
	bottom: 0px;
	left: 0px;
	padding-left: 50px;
}
.info .bottom-right {
	position: absolute;
	bottom: 0px;
	right: 0px;
	padding-right: 50px;
}



.container {
	position: relative;
	overflow: hidden;

	float: left;
	width: 100%;
	height: 100%;
}


.field {
	position: absolute;
	overflow: visible;
	top: 0px;
	left: 0px;
	margin-top: 0px;
}


.ribbon {
	height: 360px;
	width: auto;
	overflow: visible;
	white-space: nowrap;
	word-spacing: 0px;
	font-size: 0px;
	padding-top: 2px;
	padding-bottom: 2px;
	opacity: 0.5;
}


.new-ribbon {
	height: 0px;
}


.current.image {
	opacity: 1.0;
}


.current.ribbon {
	opacity: 1.0;
}


.current.ribbon .image {
}



/* dark background */
.dark.viewer, .dark .splash {
	background-color: rgb(32, 32, 32);
}


.dark .overlay *, .dark .splash *, .dark .info * {
	color: silver;
}

.dark .overlay .options, .dark .overlay .background {
	background-color: rgb(32, 32, 32);
}




.dark .screen-button {
	color: silver;
}


.dark .image {
}


.dark .toggle-single, .dark .zoom-in {
	border-top: solid gray 1px;
}


/* black background */
.black.viewer, .black .splash {
	background-color: black;
}

.black .overlay *, .black .splash *, .black .info * {
	color: silver;
}

.black .overlay .options, .black .overlay .background {
	background-color: black;
}


.black .screen-button {
	color: white;
}


.black .image {
}


.black .toggle-single, .black .zoom-in {
	border-top: solid silver 1px;
}


/* single ribbon mode */
.single-ribbon-mode .ribbon {
	opacity: 0;
}

.single-ribbon-mode .current.ribbon {
	opacity: 1;
}


