@font-face {
	/* https://www.theleagueofmoveabletype.com/orbitron */
	font-family: 'orbitron';
	src: url('../fonts/orbitron/orbitron-light-webfont.woff') format('woff'), url('../fonts/orbitron/orbitron-light-webfont.ttf') format('truetype');
	font-weight: normal;
	font-style: normal;
}

/*
html {
	scrollbar-width: none;
}
*/

body {
	margin: 0;
	font-size: 100%;
	font-family: DejaVu Sans, Verdana, sans-serif;
	background-color: #000;
	color: #fff;
	overflow-anchor: none;
}

#board {
	display: flex;
	flex-wrap: wrap;
/*	gap: 1rem; */
	align-items: flex-start;
}

table {
	--tabs: 4;
}

/* @media screen and (min-width: 2201px) {table { --tabs: 5; }} */
/* @media screen and (max-width: 2200px) {table { --tabs: 4; }} */
/*
@media screen and (max-width: 1300px) {table { --tabs: 3; }}
@media screen and (max-width: 800px) {table { --tabs: 2; }}
@media screen and (max-width: 450px) {table { --tabs: 1; }}
*/

table {
	--baseWidth: calc(100% / var(--tabs));
/*	--baseWidth: calc((100% - (var(--tabs) - 1) * 1rem) / var(--tabs)); */
	flex: 0 1 var(--baseWidth);
	max-width: 100%;
	border: 1px solid #f94;

	/* experimental */
	content-visibility: auto; /* the page is probably too short for this to have an effect */
	contain-intrinsic-size: auto;
	will-change: transform; /* quirk to force compositing, repaint tables individually */
}

table.narrow {
	flex: 0 1 calc(var(--baseWidth) * 0.6);
}

table.wide {
	flex: 0 1 calc(var(--baseWidth) * 1.4);
}

table.wider {
	flex: 0 1 calc(var(--baseWidth) * 2);
}

caption {
	display: none;
}

thead {
	font-family: orbitron, sans-serif;
	color: #f94;
}

tbody {
	font-size: 80%;
	text-align: end;
}

td, th {
	max-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.Odyssey {
	background-color: #05b;
}

.Horizons {
	background-color: #b50;
}

.Base {
	background-color: #555;
}

.Legacy {
	background-color: #333;
}

.taxi {
	color: yellow;
	font-weight: bold;
}

.old {
	color: #aaa;
}

.new {
	color: #a00;
}

.longjump {
	font-weight: bold;
}

tr.data:hover {
	outline: 2px solid yellow;
}

.infobox {
	position: fixed;
	top: 20%;
	left: 20%;
	width: 60%;
	height: 60%;
	background-color: rgb(42 42 42 / 0.9);
	color: #fff;
	border: 2px solid #555;

	display: flex;
	flex-direction: column;

	overflow: visible;
}

.infobox__header {
	flex-shrink: 0;
	z-index: 20;

	background-color: #aaa;
	color: #000;
	padding: 0.25em;
}

.infobox__contentbox {
	flex: 1;
	min-height: 0;

	overflow: auto;
	scrollbar-width: auto;
	overscroll-behavior: contain;
}

.infobox__button {
	position: relative;
	border-radius: 4px;
/*	transition: border-color 0.2s; */

	outline: 0px solid transparent;
	outline-offset: 0px;
	transition: outline-offset 0.2s ease-out, outline-color 0.2s ease-out;
}

/* Shared Animation Properties */
[class*="infobox__button--signal-"] {
	animation: infobox__fx--ripple-out 0.6s cubic-bezier(0, 0, 0.2, 1);
	will-change: outline-offset, outline-color;
	/* Lift z-index to ensure outline isn't clipped by neighbors */
	/* TODO: clipped by <div> window edge */
	z-index: 10;
}

.infobox__button--signal-success {
	--pulse-color: rgb(34 197 94 / 0.8);
}

.infobox__button--signal-error {
	--pulse-color: rgb(239 68 68 / 0.8);
}

@keyframes infobox__fx--ripple-out {
	0% {
		outline: 4px solid var(--pulse-color);
		outline-offset: 0px;
	}
	25% {
		outline-width: 4px;
	}
	100% {
		outline: 0px solid transparent;
		outline-offset: 16px;
	}
}
