.gallery {
	background-color: black;
	border: 1px solid #FF8000;
	color: #FF8000;
	font-family: sans-serif;
	
	-moz-user-select: -moz-none;
	-khtml-user-select: none;
	-webkit-user-select: none;
}

/** LISTING **/
.gallery .listing {
	margin: 5px;
}

.gallery .listing .dirs.categorized {
	display: flex;
	flex-direction: column;
}

.gallery .listing .dirs {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
}

.gallery .listing .images {
	display: flex;
	flex-wrap: wrap;
	flex-direction: row;
	justify-content: space-around;
}

/** LISTING - DIRECTORY **/
.gallery .listing .item.directory {
	margin: 2px;
	border: 1px solid #99FF00;
	color: #99FF00;
	background-color: green;
	display: inline-block;
	font-size: 18px;
	padding: 2px 5px 2px 3px;
	cursor: pointer;	
}

.gallery .listing .item.directory:hover {
	color: black;
	background-color: #99FF00;
}

.gallery .listing .category {
	margin-top: 5px;
}

/** LISTING - IMAGE **/
.gallery .listing .item.image {
	margin: 2px;
	color: #ff8000;
	display: inline-block;
	cursor: pointer;
	text-align: center;
	font-size: 10px;
}

.gallery .listing .item.image > .name {
	width: 128px;
	display: inline-table;
	word-break: break-word;
}

.gallery .listing .item.image:hover {
	color: #99ff00
}

.gallery .listing .item.image .thumb {
	width: 128px;
	height: 128px;
	border: 1px solid #ff8000;
	background-repeat: no-repeat;
	background-position: center;
}

.gallery .listing .item.image:hover .thumb {
	border: 1px solid #99ff00;
}

/** LISTING - VIDEO **/
.gallery .listing .item.video {
	margin: 2px;
	color: #ff8000;
	display: inline-block;
	cursor: pointer;
	text-align: center;
	font-size: 10px;
}

.gallery .listing .item.video > .name {
	width: 128px;
	display: inline-table;
	word-break: break-word;
}

.gallery .listing .item.video:hover {
	color: #99ff00
}

.gallery .listing .item.video .thumb {
	width: 128px;
	height: 128px;
	border: 1px solid #ff8000;
	background-repeat: no-repeat;
	background-position: center;
	color: rgba(80,80,80,0.85);
	font-family: monospace;
	font-size: 96px;
}

.gallery .listing .item.video .thumb::after {
	content: "▶";
}

.gallery .listing .item.video:hover .thumb {
	border: 1px solid #99ff00;
}

/** TOP - BAR **/
.gallery .top-bar {
	position: relative;
	border-bottom: 1px solid #ff8000;
	font-weight: bold;
}

/** PATH **/
.gallery .path {
	
}

.gallery .path > .path-part {
	cursor: pointer;
	padding: 2px;
	display: inline-block;
	border: 1px solid black;
}

.gallery .path > .path-part:hover {
	color: #000000;
	background-color: #FFCC80;
}

.gallery .path > .path-part:not(:first-child):before {
	content: ">";
}

/** ACTIONS **/
.gallery .actions {
	position: absolute;
	top: 0px;
	right: 0px;
	font-size: 0;
}

.gallery .actions .break {
	display: inline-block;
	border-left: 1px solid #FF8000;
}

.gallery .actions .action {
	cursor: pointer;
	padding: 2px;
	display: inline-block;
	border: 1px solid black;
	font-size: initial;
}

.gallery .actions .action:hover {
	color: #000000;
	background-color: #FFCC80;
}

/** VIEWER **/
.gallery .viewer {
	position: fixed;
	top: 0px;
	left: 0px;
	right: 0px;
	bottom: 0px;
	background-color: black;
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	text-shadow:0px 0px 5px black, 2px 0px 5px black, 2px 2px 5px black, 0px 2px 5px black, -2px 0px 5px black, 0px -2px 5px black, -2px -2px 5px black, 0px 0px 5px black, 4px 0px 5px black, 4px 4px 5px black, 0px 4px 5px black, -4px 0px 5px black, 0px -4px 5px black, -4px -4px 5px black;
}

.gallery .viewer .web {
	position: absolute;
	top: 0px;
	left: 0px;
	bottom: 0px;
	right: 0px;
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
	z-index: -10;
}

.gallery .viewer .full {
	position: absolute;
	top: 0px;
	left: 0px;
	bottom: 0px;
	right: 0px;
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
	z-index: -9;
}



@media print {
	.gallery .viewer .nav {
		display: none;
	}
	
	.gallery .viewer .top-menu {
		display: none;
	}
	
	.gallery .top-bar {
		display: none;
	}
	
	.gallery .listing {
		display: none;
	}
	
	.gallery .login {
		display: none;
	}
	
	.gallery .viewer {
		background-color: white;
	}
	
	.gallery {
		border: none;
		background-color: white;
	}
	
	body {
		background-color: white;
	}
}

.gallery .viewer .nav:hover {
	color: #99FF00;
	text-shadow: 0px 0px 18px #99FF00;
}

.gallery .viewer .nav {
	position: absolute;
	top: 50%;
	
	font-size: 70px;
	font-weight: bold;
	line-height: 36px;
	font-family: fantasy;
}

.gallery .viewer .prev .nav {
	left: 0.5em;
}

.gallery .viewer .next .nav {
	right: 0.5em;
}

.gallery .viewer .prev {
	position: absolute;
	left: 0px;
	top: 0px;
	bottom: 50px;
	width: 25%;

	text-align: left;
	
	display: block;
	margin-top: -0.5em;
}

.gallery .viewer .next {
	position: absolute;
	right: 0px;
	top: 0px;
	bottom: 50px;
	width: 25%;
	
	text-align: right;
	
	display: block;
	margin-top: -0.5em;
}

.gallery .viewer .top-menu {
	position: absolute;
	min-height: 10%;
	top: 0px;
	left: 0px;
	right: 0px;
	text-align: center;
	font-weight: bold;
}

.gallery .viewer .top-menu .info {
	position: absolute;
	left: 4px;
	text-align: left;
}

.gallery .viewer .top-menu .link > a {
    font-size: 10px;
    text-decoration: none;
}

.gallery .viewer .top-menu .exit {
	position: absolute;
	right: 0px;
	top: 0px;
}

.gallery .viewer .button {
	padding: 5px;
	font-size: 70px;
	font-family: monospace;
	font-weight: bold;
	line-height: 36px;
}

.gallery .viewer .button:hover {
	color: #99FF00;
	text-shadow: 0px 0px 18px #99FF00;
}

.gallery .viewer .bottom-menu {
	position: absolute;
	min-height: 10%;
	bottom: 50px;
	left: 0px;
	right: 0px;
	text-align: right;
	font-weight: bold;
}

.gallery .viewer .bottom-menu .save {
	display: inline-block;
}

.gallery .viewer .bottom-menu .original {
	display: inline-block;
}

/** LOGIN **/
.gallery .login {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: #222222;
}

.gallery .login .restricted {
	border: 3px solid #ff8000;
	padding: 2em;
	width: 40em;
	margin: 10em auto;
	text-align: center;
	background-color: black
}

.gallery .login .restricted input {
	width: 30em;
	border: 2px solid #ff8000;
	text-align: center;
	color: #ff8000;
}
