body {
	overflow: hidden;
}


/*** BASICS ***/

.tableContainer {
	width: 100%;
	height: calc(100vh - 11.5em);
	overflow: auto;
	transition: width .3s ease, height .3s ease, margin .3s ease;
}
.tableContainer.wide {
	width: 100vw;
	margin-left: calc((100% - 100vw) / 2);
}
.tableContainer.narrow {
	overflow-x: hidden;
}
table, form table {
	width: 100%;
	margin: 0;
	border: thin solid #AAA;
	border-collapse: collapse;
	clear: both;
	font-size: .8rem;
	line-height: 1.125rem;
	background: #FFF;
}
.tableContainer table {
	/* margin-bottom: 1rem; */
}
.dialogToggle + table {
	margin-top: 1px;
}
thead {
	font-weight: bold;
}
table tr {
	height: 2em;
}
#lensesTable tbody tr, table .manufacturerLabel {
	height: 4em;
}

table th, table td {
	min-width: 5em;
	max-width: 10em;
	padding: 0 2px;
	border: thin solid #AAA;
	text-align: left;
	text-decoration: inherit;
}
thead :last-child th, thead .colgr0, tbody:not(:last-child) :last-child td {
	border-bottom-color: #555;
}
thead :first-child [class]:not(:last-child), table .colgr0, table .lastOfGroup {
	border-right-color: #555;
}
.tableContainer .buttons {
	width: 100%;
	position: -webkit-sticky;
	position: sticky;
	left: 0;
	z-index: 5;
}

table td, table th:not(.colgr0) {
	position: relative;
}
table th[title] {
	cursor: help;
}
table sup {
	position: absolute;
	top: 0;
	margin-left: .5em;
}
table td sup {
	right: .5em;
	color: #333;
	user-select: none;
}
table td[title]:active::before, table td[title]:hover::before,
table td[data-title]:active::before, table td[data-title]:hover::before {
	content: attr(title);
	position: absolute;
	right: -.5em;
	bottom: 3em;
	min-width: 5em;
	padding: .25em .5em;
	z-index: 10;
	background: #EEE;
	border-radius: .25em;
	box-shadow: 0 0 .5em 0 #333;
	white-space: pre;
	color: #000;
	pointer-events: none;
}
table td[data-title]:active::before, table td[data-title]:hover::before {
	content: attr(data-title);
}
table td.colgr0::before {
	content: none !important;
}
#lensesTable td[title]:active::before, #lensesTable td[title]:hover::before,
#lensesTable td[data-title]:active::before, #lensesTable td[data-title]:hover::before {
	bottom: 4.5em;
}
.filterWrapper {
	display: inline-block;
	margin: 0 1em 1em 0;
}
.filterWrapper select {
	min-width: 10em;
	margin: 0 .5em;
	font: inherit;
	font-size: .8rem;
}


/*** FULLSCREEN + ANIMATION ***/

#header {
	transition: margin .3s ease;
}
#stickyHeader, #stickyFooter {
	display: block;
	width: 100%;
	max-width: 60rem;
	position: fixed;
	z-index: 20;
	padding: 1em;
	opacity: 0;
	background: #FFF;
	box-shadow: 0 0 1em 0 #333;
	transition: top .3s ease, bottom .3s ease, opacity .3s ease;
}
#stickyHeader.shown, #stickyFooter.shown {
	opacity: 1;
}
.tableContainer.wide ~ #stickyHeader, .tableContainer.wide ~ #stickyFooter {
	max-width: 100vw;
	left: 0;
}
#stickyHeader {
	overflow: hidden;
	padding: 1em 1em 0 1em;
	border-right: 1em solid #FFF;
}

#stickyHeader .buttons {
	width: 100%;
	position: -webkit-sticky;
	position: sticky;
	top: 0;
	left: 0;
}
#stickyHeader table {
	margin-right: 1px;
	clear: both;
}
#stickyHeader table th {
	min-width: 0;
	max-width: none;
}

#footnotes {
	position: relative;
	min-height: 1.5em;
	margin-bottom: 0;
}
#footnotes summary {
	position: absolute;
	bottom: -.625em;
	width: 7em;
	padding: .5em;
	list-style-type: "\25Ba  ";
}
#footnotes[open] summary {
	list-style-type: "\25B2  ";
}
.footnotes {
	width: calc(100% - 20em);
	margin: 0 auto;
	display: flex;
	flex-flow: column nowrap;
	gap: .75em;
	align-items: center;
	text-align: center;
	font-size: .8rem;
	line-height: 1.5;
}
.footnotes span[class] {
	display: inline-block;
	margin: 0 .25em;
	padding: .25em .5em;
}
.footnotes sup {
	margin-right: .25em;
	font-weight: bold;
}


/*** PARTICULAR CELLS ***/

tbody tr:active, tbody tr:focus-within, tbody tr:hover {
	background-image: linear-gradient(0deg, #369, transparent .5em);
}
tbody tr.selected {
	background-color: rgba(170,170,170,.4);
}
tbody tr.inactive, tbody tr.resolved {
	opacity: .75;
}
#lensesTable tr.inactive {
	text-decoration: line-through;
}

table .manufacturerLabel {
	background: linear-gradient(90deg, #EEE, #CCC) !important;
}
table .manufacturerLabel div {
	position: -webkit-sticky;
	position: sticky;
	left: 2rem;
	width: calc(100% - 4rem);
	max-width: calc(100vw - 8rem);
}
table .manufacturerLabel span {
	vertical-align: middle;
	font-size: 1rem;
}
table .goodResults {
	background: linear-gradient(90deg, #EEE, #6C6) !important;
}
table .uncertainResults {
	background: linear-gradient(90deg, #EEE, #CC3) !important;
}
table .badResults {
	background: linear-gradient(90deg, #EEE, #C66) !important;
}
table td.email, table td .email {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	max-width: 100%;
}

table .colgr1.wide, table .colgr2.wide, table .colgr3.wide {
	min-width: 10em;
}
table .colgr4.wide, table .colgr5.wide {
	min-width: 7em;
}
table .colgr0, #lensesTable .image {
	min-width: 2em;
	padding: 2px;
	text-align: center;
}
table th.nominal, table td.nominal {
	background: rgba(170,170,170,.2);
}

#lensesTable thead .colgr0, #stickyHeader thead .colgr0 {
	background: #DEF;
	font-weight: normal;
}
#lensesTable thead .colgr0 label, #stickyHeader thead .colgr0 label {
	display: inline-block;
	min-width: 80%;
	min-height: 80%;
}

#researchesTable .colgr0 {
	transition: box-shadow 1.5s linear;
}
#researchesTable .colgr0.focused {
	box-shadow: 0 0 .2em .1em #000 inset;
	transition-duration: 0s;
}
#researchesTable input {
	margin: 4px;
	filter: brightness(3);
	transform: scale(1.5);
}
#researchesTable input:checked {
	filter: invert(1) grayscale(1) contrast(3);
}

#changesTable th, #ticketsTable th, #usersTable th,
#changesTable td, #ticketsTable td, #usersTable td {
	padding: 2px 4px;
}
#ticketsTable td {
	vertical-align: top;
}
#ticketsTable td:last-child {
	text-align: right;
}

table img {
	max-width: 50px;
	max-height: 50px;
}
table td.image:hover img {
	position: relative;
	z-index: 5;
	max-width: 104px;
	max-height: 104px;
	margin: -25px 0 0 -25px;
	border: 2px solid #FFF;
	background: #FFF;
	box-shadow: 0 0 .5em 0 #333;
	pointer-events: none;
}
table td.image div {
	max-width: 50px;
	max-height: 50px;
	margin: auto;
}
table .manufacturerLabel img {
	max-width: 200px;
	margin: 0 2em 0 0;
	vertical-align: middle;
	pointer-events: none;
}

table span[class] {
	display: inline-block;
	text-decoration: inherit;
}
table span.part {
	min-width: 20%;
	max-width: 30%;
	padding: 0 2px;
	text-align: center;
}
table span.labeled {
	width: 33%;
	text-align: center;
}
table span.int {
	width: 40%;
	text-align: right;
}
table span.frac {
	width: 50%;
	text-align: left;
}
table hr {
	margin: 0;
	border-color: #AAA;
}
/* table tr a::after is now in style.css */

.greenCell {
	box-shadow: 0 0 .2em .1em #090 inset;
}
.yellowCell {
	box-shadow: 0 0 .2em .1em #C90 inset;
}
.redCell {
	box-shadow: 0 0 .2em .1em #C00 inset;
}
.tealCell {
	background: repeating-linear-gradient(135deg, transparent 0, rgba(0,102,102,0.2) 2em, transparent 4em);
}
.purpleCell {
	background: repeating-linear-gradient(135deg, transparent 0, rgba(102,0,102,0.15) 2em, transparent 4em);
}


/*** DROPDOWN MENU ***/

.dropdownMenu {
	position: relative;
	display: inline-block;
	z-index: 30;
	margin: 0 1rem 1rem 0;
	text-align: center;
	font-size: .8rem;
	line-height: 1;
	white-space: nowrap;
}
.dropdownMenu:active, .dropdownMenu:focus-within, .dropdownMenu:hover {
	z-index: 40 !important;
}
.dropdownMenu.open {
	z-index: 35;
}
.dropdownMenu span {
	display: inline-block;
	width: 18em;
	border: thin solid #777;
	border-radius: .5em;
	padding: .475rem .7125rem;
	background: #DDD;
	cursor: default;
}
#filterMenu span {
	width: 16em;
}

.dropdownMenu:active span, .dropdownMenu:focus-within span, .dropdownMenu:hover span,
.dropdownMenu.open span {
	border-color: #888;
	border-radius: .5em .5em 0 0;
	background: #EEE;
}
.dropdownMenu .hoverHelper, main .getLenses .hoverHelper {
	position: absolute;
	display: none;
	z-index: -90;
	width: calc(100% + 1.75rem);
	min-height: calc(100% + 1.75rem);
	margin: -2.625rem 0 0 -.875rem;
}
.dropdownMenu:active .hoverHelper, .dropdownMenu:focus-within .hoverHelper, .dropdownMenu:hover .hoverHelper,
.dropdownMenu.open .hoverHelper {
	display: block;
}
.dropdownMenu:active .submenu, .dropdownMenu:focus-within .submenu, .dropdownMenu:hover .submenu,
.dropdownMenu.open .submenu {
	display: block;
}

.submenu {
	position: absolute;
	display: none;
	width: 100%;
	z-index: -5;
	margin: 0;
	border: thin solid #888;
	border-top: none;
	border-radius: 0 0 .5em .5em;
	padding: 0 .3125em;
	background: #EEE;
	box-shadow: 0 0 .5em 0 #999;
	list-style: none;
	text-align: left;
	line-height: 1.25;
}
.submenu li {
	margin: .75em .375em;
}
.submenu label {
	display: inline-block;
	width: 5.25em;
	color: #000;
}
.submenu input + label {
	width: calc(100% - 1.5em);
	/* margin-left: 0; */
	font-size: 1rem;
	color: #048;
	vertical-align: top;
}
.submenu select, .submenu input[type=text] {
	width: calc(100% - 5.5em);
	border: thin solid #EEE;
	padding: 2px;
	outline: none;
	box-shadow: none !important;
	background: #FFF;
	font: inherit;
}
.submenu select:active, .submenu select:focus, .submenu select:hover,
.submenu [type=text]:active, .submenu [type=text]:focus, .submenu [type=text]:hover {
	border-color: #048;
}
.submenu select:disabled {
	border-color: #EEE;
	background: #DDD;
	color: #000;
}
.submenu [for=fileVersion], .submenu [for=cAxialLength] {
	width: 6.5em;
}
.submenu #fileVersion, .submenu #cAxialLength {
	width: calc(100% - 6.75em);
}
.submenu hr {
	border-color: #999;
}

#filterMenu .submenu label {
	margin-left: -.25em;
}
#filterMenu .submenu select, #filterMenu .submenu input[type=text] {
	width: 100%;
	margin: 0;
}
#filterMenu .submenu a {
	width: 6em;
	font-size: initial;
}


/*** BUTTONS + INPUTS ***/

.getLenses {
	display: inline-block;
	position: relative;
	margin: 0 .75em 1em 0;
	z-index: 40;
}
.getLenses > button, .getLenses > span {
	position: relative;
	margin: 0 -1px 0 0 !important;
	white-space: nowrap;
}
.getLenses > button:active, .getLenses > button:focus, .getLenses > button:hover {
	z-index: 5;
}
main .getLenses.showList:active > button, main .getLenses.showList:focus-within > button, main .getLenses.showList:hover > button,
main .getLenses.showList:active > span, main .getLenses.showList:focus-within > span, main .getLenses.showList:hover > span,
main .getLenses.showList.open > button, main .getLenses.showList.open > span {
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0;
}
main .getLenses.showList:active > div, main .getLenses.showList:focus-within > div, main .getLenses.showList:hover > div,
main .getLenses.showList.open > div {
	display: block;
}
main .selectedLenses {
	display: none;
	position: absolute;
	width: calc(100% + 1px);
	z-index: -5;
	border: thin solid #999;
	border-top: none;
	border-radius: 0 0 .5em .5em;
	background: #EEE;
	box-shadow: 0 0 .5em 0 #999;
	font-size: .8rem;
	line-height: 1.5;
}
.selectedLenses ul {
	list-style: none;
	max-height: 20em;
	overflow: auto;
	margin: 0;
	padding: .5em .75em;
	background: #FFF;
	white-space: nowrap;
}
.selectedLenses li {
	overflow: hidden;
	text-overflow: ellipsis
}
.selectedLenses li span:first-of-type {
	max-width: 40%;
	margin-right: .5em;
	color: #333;
}
.selectedLenses > a, #filterMenu a {
	display: block;
	width: 9em;
	margin: .5em auto;
	text-align: center;
	text-decoration: none;
}

.tableContainer .roundButton, #stickyHeader .roundButton {
	width: 2rem;
	height: 2rem;
	margin-bottom: 0;
}
.tableContainer.narrow > .roundButton {
	margin-top: 0;
}
#stickyHeader .scrollHint {
	margin-top: .5em;
	margin-right: -.4em;
}
.buttons .floatRight > * {
	margin-left: .75rem;
	margin-right: 0;
}
.buttons .floatRight > :first-child {
	margin-left: 0;
}
input + label:active, input + label:focus, input + label:hover {
	color: #024;
}
.numberOfLenses {
	margin-right: .75rem;
	border: thin solid #999;
	padding: .3125rem .625rem;
	border-top-right-radius: .5em;
	border-bottom-right-radius: .5em;
	background: #FFF;
	font-size: .8rem;
	font-weight: bold;
	cursor: default;
}
.lensesWarning .numberOfLenses {
	border-color: #900 !important;
	color: #600;
	cursor: help;
}
button:active ~ .numberOfLenses, button:focus ~ .numberOfLenses, button:hover ~ .numberOfLenses,
.jumpTo:active, .jumpTo:focus, .jumpTo:hover {
	border-color: #048;
}
[value=unsubscribe]:active ~ .numberOfLenses, [value=unsubscribe]:focus ~ .numberOfLenses, [value=unsubscribe]:hover ~ .numberOfLenses {
	border-color: #900;
}
.jumpTo {
	display: inline-block;
	width: 14em;
	border: thin solid #999;
	padding: 3px;
	font: inherit;
	font-size: .8rem;
}
.jumpTo :first-child {
	background: #CCC;
	font-style: italic;
}


/*** COLUMN GROUP TOGGLE ***/

#unimportant:not(:checked) ~ .tableContainer th.unimportant, #unimportant:not(:checked) ~ .tableContainer td.unimportant,
#unimportant:not(:checked) ~ #stickyHeader th.unimportant {
	display: none !important;
}
#unimportant:checked ~ .tableContainer th.unimportant, #unimportant:checked ~ .tableContainer td.unimportant,
#unimportant:checked ~ #stickyHeader th.unimportant {
	display: table-cell;
}
#colgr2:not(:checked) ~ .tableContainer th.colgr2, #colgr2:not(:checked) ~ .tableContainer td.colgr2,
#colgr2:not(:checked) ~ .tableContainer colgroup.colgr2, #colgr2:not(:checked) ~ #stickyHeader th.colgr2 {
	display: none;
}
#colgr2:checked ~ .tableContainer th.colgr2, #colgr2:checked ~ .tableContainer td.colgr2,
#colgr2:checked ~ #stickyHeader th.colgr2 {
	display: table-cell;
}
#colgr2:checked ~ .tableContainer colgroup.colgr2 {
	display: table-column-group;
}
#colgr3:not(:checked) ~ .tableContainer th.colgr3, #colgr3:not(:checked) ~ .tableContainer td.colgr3,
#colgr3:not(:checked) ~ .tableContainer colgroup.colgr3, #colgr3:not(:checked) ~ #stickyHeader th.colgr3 {
	display: none;
}
#colgr3:checked ~ .tableContainer th.colgr3, #colgr3:checked ~ .tableContainer td.colgr3,
#colgr3:checked ~ #stickyHeader th.colgr3 {
	display: table-cell;
}
#colgr3:checked ~ .tableContainer colgroup.colgr3 {
	display: table-column-group;
}
#colgr4:not(:checked) ~ .tableContainer th.colgr4, #colgr4:not(:checked) ~ .tableContainer td.colgr4,
#colgr4:not(:checked) ~ .tableContainer colgroup.colgr4, #colgr4:not(:checked) ~ #stickyHeader th.colgr4 {
	display: none;
}
#colgr4:checked ~ .tableContainer th.colgr4, #colgr4:checked ~ .tableContainer td.colgr4,
#colgr4:checked ~ #stickyHeader th.colgr4 {
	display: table-cell;
}
#colgr4:checked ~ .tableContainer colgroup.colgr4 {
	display: table-column-group;
}
#colgr5:not(:checked) ~ .tableContainer th.colgr5, #colgr5:not(:checked) ~ .tableContainer td.colgr5,
#colgr5:not(:checked) ~ .tableContainer colgroup.colgr5, #colgr5:not(:checked) ~ #stickyHeader th.colgr5 {
	display: none;
}
#colgr5:checked ~ .tableContainer th.colgr5, #colgr5:checked ~ .tableContainer td.colgr5,
#colgr5:checked ~ #stickyHeader th.colgr5 {
	display: table-cell;
}
#colgr5:checked ~ .tableContainer colgroup.colgr5 {
	display: table-column-group;
}
