body {
	background: #CCC;
	color: #000;
	margin: 0;
	padding: 1ex 1em;
	min-width: 20em;
	font: 16px "DejaVu Serif", "Lucida Bright", Lucidabright, "Lucida Serif", Lucida, "Bitstream Vera Serif", "Liberation Serif", Georgia, serif;
}
a {
	color: #008;
}
a:visited {
	color: #006;
}
a:active, a:hover {
	color: #00F;
	cursor: pointer;
}
a img {
	border: 0;
}
a.icon {
	text-decoration: none;
}

#head {
	position: relative;
	margin: 0 -1em 2ex;
	background: #BCB;
	border: 1px solid #484;
	border-width: 1px 0;
	overflow: hidden; /* priority over absolutely positioned elements */
}
#head h1 {
	position: absolute;
	margin: 0;
	font-size: 100%;
	background: #DA8;
	border-right: 1px solid #484;
}
#head h1 a:visited,
#head h1 a {
	text-decoration: none;
	padding: 0 1em;
	letter-spacing: 0.2em;
	color: #000;
}
#head h1 a:hover {
	background: #DD8;
}
#head p {
	position: absolute;
	top: 0;
	right: 0;
	margin: 0;
	padding: 0 1em;
}
#head ul {
	margin: 0;
	padding: 0;
	list-style: none;
	text-align: center;
}
#head ul li > *,
#head ul li {
	display: inline;
	margin: 0;
	padding: 0;
}
#head ul li b,
#head ul li a {
	padding: 0 0.5em;
	border: 1px solid transparent;
	border-width: 0 1px;
	color: #000;
	text-decoration: none;
}
#head ul li input[type="search"] {
	width: 10em;
	vertical-align: 1px;
	font-size: 12px;
}
aside {
	float: right;
	margin-top: 1ex;
}
nav {
	display: table;
	margin: 4ex auto 1em;
	overflow: auto;
}
h2 + nav {
	margin-top: 0;
}
nav li,
nav > * {
	margin: 0;
	padding: 1ex 1em;
	border: 1px solid #AC9;
	background: #BCB;
	display: inline-block;
}
nav li + li,
nav > * + * {
	margin-left: 1em;
}
nav ul {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
}

aside.hilight a {
	background: #DDA;
	border: 1px solid #884;
	padding: 1ex 1em;
	font-size: 120%;
	border-color: #884;
}
div.hilight {
	background: #FFA !important;
	opacity: .4;
}
#head ul li b {
	background: #DDA;
	border-color: #884;
}
#head ul li a:hover {
	background: #CCB;
	border-color: #8A8;
}

#foot {
	margin: 3ex -1em 0;
	border-top: 1px solid #484;
	background: #BCB;
	clear: both;
	padding: 0 1em;
	text-align: right;
}

h2 {
	background: #8C8;
	border: 1px solid #484;
	padding: 0 1em;
	font-size: 125%;
}
h3 {
	font-size: 100%;
	padding: 0 1ex;
	background: #9C9;
	border: 1px solid #484;
}
#index > h3 {
	float: left;
	margin: 0 1ex 0 0;
}

li:target,
p:target {
	border: .4em solid #FD0;
	border-width: 0 0 0 .4em;
	padding-left: .2em;
	margin-left: -.6em;
	background: #FFF8;
}
li:target {
	border-width: 1px 0;
	margin: 0;
	padding: 0;
}
h3:target,
h2:target {
	background: #FD0;
}

.warn {
	background: #EDC;
	border-color: #C84;
}
div.warn {
	background: #EDC;
	border: 1px solid #C84;
	margin: 2ex 15%;
	padding: 0.75ex 1em;
	text-align: center;
}
div.warn h3 {
	margin: 0;
	padding: 0;
	background: none;
	border: 0;
	float: none;
}
div.warn p {
	margin: 1ex 0 0;
}

select,
textarea,
input[type="password"],
input[type="number"],
input[type="search"],
input[type="email"],
input[type="text"] {
	border: 1px solid #8A8;
	background: #C3CCC3;
	color: #000;
	margin: 1px 2px 0 0;
	padding: 0 0.2em;
}
input[type="checkbox"] {
	margin-top: 0;
}
input[type="number"] {
	width: 3em;
	padding-right: 0;
}
select {
	padding: 0;
}
input[type="password"] {
	border-style: dashed;
}
.disabled {
	text-decoration: line-through;
	color: #666;
}
.disabled input,
input[disabled] {
	background: #BBB;
	border-color: #999;
}
select:hover,
textarea:hover,
input[type="password"]:hover,
input[type="number"]:hover,
input[type="search"]:hover,
input[type="email"]:hover,
input[type="text"]:hover {
	background: #C3CCBB;
}
.disabled input:hover,
input[disabled]:hover {
	background: #AAA;
}
select:focus,
textarea:focus,
input[type="password"]:focus,
input[type="number"]:focus,
input[type="search"]:focus,
input[type="email"]:focus,
input[type="text"]:focus {
	background: #CCB;
	border-color: #8A0;
	outline: 0;
}
.disabled input:focus {
	background: #999;
}
button,
input[type="button"] {
	background: #DCB;
	color: #000;
	border: 1px solid #9B6;
	font: inherit;
	text-decoration: none;
	padding: 0 .4em;
}
button:hover,
input[type="button"]:hover {
	background: #DAA;
	border-color: #9B6;
}
button:active,
input[type="button"]:active {
	background: #DA8;
	border-color: #CA8;
}
input[type="submit"] {
	background: #DDB;
	color: #000;
	border: 1px solid #9B6;
	font: inherit;
}
input[type="submit"]:hover {
	background: #DCA;
	border-color: #9B6;
}
input[type="submit"]:active {
	background: #DD8;
	border-color: #CA8;
}

.select {
	cursor: crosshair;
	position: fixed;
	top: 5vh;
	height: 90vh;
	left: 5vw;
	width: 90vw;
	object-fit: contain;
	background: rgba(0, 0, 0, .25);
	box-shadow: 0 0 0 50vh rgba(0, 0, 0, .25);
}
.select img {
	width: 100%;
	height: 100%;
}

em.fam {
	font-style: normal;
	font-variant: small-caps;
}
small.trans {
	color: #676;
}
a small.trans, a:visited small.trans {
	color: #779;
}
a:hover small.trans, a:active small.trans {
	color: #66E;
}

.caption {
	margin-bottom: 0;
}
dl {
	margin: 0;
	border-top: 1px solid #484;
}
dl dt {
	float: left;
	width: 8em;
	text-align: right;
	padding: 0.2em 0;
	clear: left;
}
dl dl dt {
	clear: none;
}
dl.left dt {
	text-align: left;
}
dl dd {
	margin-left: 8.5em;
	border-left: 1px solid #484;
	padding: 0.2em 0 0.2em 0.5em;
}
#upload dl dd {
	overflow: hidden;
}
dl.large dt {
	width: 16em;
}
dl.large dd {
	margin-left: 16.5em;
}
dl.list {
	border-top: 0;
	display: grid;
	grid-template-columns: auto 1fr;
}
dl.list dt {
	grid-column: 1;
	padding: 0;
	width: auto;
	float: none;
}
dl.list dd {
	grid-column: 2;
	margin-left: 0.5em;
	border-left: 1px solid #8A8;
	padding: 0;
	padding-left: 0.5em;
}
dl dt.foot {
	margin: 0.2em 0 0 4.25em;
	width: 8.5em;
	text-align: center;
	border: 1px solid #484;
	padding: 0;
}
dl dt.foot input {
	width: 100%;
	border: 0;
}

dd > div,
li > div {
	overflow: hidden;
}
div.box > img,
dd > div > img,
li > div > img,
dd > div > a > img,
li > div > a > img {
	float: left;
	margin-right: 1ex;
}
li > div p {
	overflow: hidden;
}

ol {
	margin: 1px 0 0;
	padding: 0 0 0 2em;
}
ol li {
	border-left: 1px solid #8A8;
	padding-left: 0.5em;
}

ul.list {
	list-style: none;
	padding-left: 0;
}
ul.gal {
	list-style: none;
	margin: 0;
	padding: 0;
}
.gal {
	overflow: hidden;
}
.gal > figure,
ul.gal li {
	padding: 1ex 0 0;
	margin-right: .4em;
	float: left;
}
.gal img {
	max-width: 640px;
}
figure {
	margin: 0;
}
figure img {
	max-width: 100%;
	max-height: 100vh;
}

th {
	text-align: left;
	font-size: 80%;
}
th, td {
	vertical-align: top;
	padding: 0 0.5ex 0 0;
}
td:last-child {
	padding-right: 0;
}
tr:first-child td {
	border-top: 1px solid #8A8;
	padding-top: 1ex;
}
tr:last-child td {
	padding-bottom: 1ex;
}
.num {
	text-align: right;
}
.ref {
	white-space: nowrap;
}

.loc {
	text-align: center;
}
.loc h2 {
	border: 0;
	background: none;
	margin-bottom: 0;
}
.loc p {
	margin-top: 1ex;
}
.loc object {
	border: 1px solid #BBB;
	width: 3em;
	vertical-align: top;
}

span.dat {
	width: 5em;
float:left;
}

a.edit {
	margin-left: 1em;
	font-size: 80%;
}
.right {
	float: right;
}
nav.right {
	float: none;
	margin-right: 0;
}
li small.edit {
/*
	float: right;
	clear: right;
	position: relative;
	top: -2.5ex;
*/
	position: absolute;
	right: 1em;
}
span.edit {
	display: inline-block;
	vertical-align: top;
}

/* ancestry/descendants trees */
.gefilar ol {
	margin: 0;
	padding: 0 0 0 2em;
}
.gefilar ol li {
	border: 0;
	padding: 0;
}
.gefilar ol ol li {
	margin-left: 3%;
	padding-left: 0.5%;
}

.pra .pra {
	margin-left: 6%;
}
.pra span {
	padding-left: 0.4em;
	display: block; /* background over entire width */
}

.praconnect {
	position: absolute;
	background: #000;
	font-size: 0; /* msie its */
}

/* tree level colouring */
.praniv0>span,
.praniv3 { background: #BCB }
.praniv3>span,
.praniv2 { background: #CCB }
.praniv2>span,
.praniv1 { background: #BBB }
.praniv1>span,
.praniv0 { background: #CCC }

body>.praniv0:hover>span,
body>.praniv0>span {
	background: #8C8;
}
.pra:hover>span {
	background: #9C9;
}

/*
.pra:hover > .pra {
	background: #BCB;
}
.pra:hover {
	background: #ACA !important;
}
.pra {
	background: #CCC;
}
*/

/* edit history */

ins, .ins {
	color: #030;
}
del, .del {
	color: #400;
}

/* intro page */

div.intro {
	margin: 0 -1em;
	background: #9C9;
	border: 1px solid #4C4;
	border-width: 1px 0;
}
div.intro:hover {
	background: #ACA;
}
div.intro h1 small,
div.intro h1 {
	margin: 1ex 0;
	font-size: 100%;
	text-align: center;
}
div.intro h1 {
	letter-spacing: 1em;
}
div.intro h1 small {
	letter-spacing: 0;
	font-weight: normal;
	display: block;
	font-style: italic;
}

nav p {
	margin: 0 0 1ex;
	text-align: center;
}
nav form label {
	display: none;
}

nav.route {
	display: block;
	& ul {
		display: flex;
		overflow-x: auto;
	}
	& li {
		background: none;
		border: 0;
		padding: 0;
		margin: 0;
		margin-right: -12.8px; /* 20% */
		& > a {
			filter: drop-shadow(-1px 0 0 #484) drop-shadow(-1px 0 0 #CCC);
		}
		& img {
			background: #BCB;
			display: block;
		}
		&.patr img {
			clip-path: polygon(20% 0, 0 50%, 20% 100%, 100% 100%, 100% 0); /* left > */
		}
		&.inf img {
			clip-path: polygon(0 0, 20% 50%, 0 100%, 100% 100%, 100% 0); /* left < */
		}
		&.frat img {
			clip-path: polygon(0 0, 20% 25%, 0 50%, 20% 75%, 0 100%, 100% 100%, 100% 0); /* left < */
		}
		&.circle img {
			clip-path: circle(50%);
		}
	}
}

/* upload form */

.bar {
	background: #CBB;
	border: 1px solid #BBB;
}
.bar > div {
	/* progress */
	background: #DDD;
	whiteSpace: nowrap;
	width: 0; /* fill up to 100% */
}

/* statistics */

.graph {
	& > dd {
		padding-left: 0;
	}
	& span {
		background: #EEE;
		text-align: right;
		display: inline-block;
		font-size: 75%;
		line-height: 1.6; /* 1.2 / 75% */
		box-sizing: border-box;
		white-space: nowrap;
	}
	& span:nth-child(even) {
		background: #0002;
		width: 0;
		margin-right: -1px; /* <100% with border */
	}
	& span:nth-child(odd) {
		border: 1px solid #8A8;
	}
	& > dd span:nth-child(odd) {
		border-left: 0;
	}
}

/* mobile */

@media screen and (max-width: 60em) {
	#head ul {
		margin-top: 2.2ex;
	}
	#head h1 {
		border-bottom: 1px solid #484;
	}
	#head ul li b,
	#head ul li a {
		border-width: 1px;
	}
}
@media screen and (max-width: 35em) {
	dl {
		hyphens: auto;
		-webkit-hyphens: auto;
	}
	dl dd > dl.list {
		clear: left;
		margin-left: -7em;
	}
	dl dd > dl.list dt {
		width: 6em;
	}
	dl dd > dl.list dd {
		padding-left: 0.7em;
		margin-left: .3em;
	}
	dl dd > ol {
		clear: left;
		margin-left: -2.5em;
	}
	dl dd > ol li {
		margin-left: -0.2em;
		padding-left: 0.7em;
	}
	dl dd > ol li::marker {
		color: #666;
	}
	dl dd > ol li::-moz-list-number {
		color: #666;
	}
	dl dd > dl.list dt {
		color: #666;
	}
}

/* paper */

@media print {
	@page {
		margin: 10mm 0;
	}
	#head, #foot {
		display: none;
	}
	a, a:visited {
		text-decoration: none;
		color: inherit;
	}
	section, .columns {
		page-break-inside: avoid;
	}

	dl, dl dd, dd > *,
	body, h2, h3 {
		border-color: #888 !important;
		background: none;
	}
	.graph > dd > *:nth-child(odd) {
		background: #AAA;
	}
	.graph > dd > *:nth-child(even) {
		background: #EEE;
	}
}
