/* Validated with: https://jigsaw.w3.org/css-validator
- Not checked the static vars and dynamic import.
VSCode plugins: CSSTree Validator 
*/
@import url(https://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700);

/* variables */
:root {
	--min_width: 660px;
	--out_of_sight: -9999px;
	--board_width: 320px;
	--std_padding: 5px;
	--sidebar_padding: 10px;
	--game-container-gap: 20px;
	--board_width_with_padding: 330px;
	--cell_width: 30px;
	--sidebar_width: 100px;
	--sidebar_offset: -20px;
	--tooltip_padding: 5px;
	--border-radius: 5px;

	--gray: #ddd;
	--blackish: #222222;
	--lightblack: #222222;
	--deepblue: #25567B;
	--buttonblue: #99C2E1;
	--grid_color: #99C2E1;
	--button_shade: #5b8cb2;
	--orange_shade0: #FF7605;
	--orange_shade1: #FFB655;
	--orange_shade2: #FFCE8E;
}

html,
body {
	width: 100%;
	height: 100%;
	padding: 0pt;
	margin: 0pt;
	min-width: var(--min_width);
}

html {
	background-image: url('../img/pleiades.png');
	background-size: cover;
	background-position: center;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
li,
span {
	font-family: 'Open Sans', Helvetica, Arial, sans-serif;
	color: var(--blackish);
}

#title,
.grid-container h2 {
	color: var(--orange_shade0);
}

#help_text,
#attribution,
.tagline,
#help_text li {
	color: white;
}

a {
	color: white;
}

.instructions,
.legend {
	width: auto;
	display: inline-block;
	text-align: left;
	margin: 0 auto 0 auto;
}

#help_text {
	display: flex;
	flex-direction: row;
	justify-content: center;
}

.flex-column {
	display: flex;
	flex-direction: column;
}

.flex-grid {
	display: flex;
	flex-direction: row;
	gap: var(--game-container-gap);
}

@media (max-width: 900px) {
	.flex-grid {
		flex-direction: column;
	}
}

button {
	font-family: 'Open Sans', Helvetica, Arial, sans-serif;
	font-size: 1.2em;
	color: lightgray;
	background-color: var(--deepblue);
	border: none;
	margin: 1em auto 0 auto;
	padding: var(--std_padding);
	border-radius: var(--border-radius);
}

div {
	padding: 0;
	margin: 0;
	/** box-sizing: border-box; JFD: see section "content boxes and border boxes" 
	in https://internetingishard.netlify.app/html-and-css/css-box-model/	
	tip from Stefan but unneeded after fixing another bug.
	*/
}

button:hover {
	/* JFD: hand */
	cursor: pointer;
	background-color: black;
}

/* JFD: default */
button:active {
	background-color: var(--buttonblue);
}

/* JFD: button ids */
#start-game,
#place-randomly,
#restart-game {
	position: relative;
	color: white;
	background-color: orange;
}

#start-game:hover,
#place-randomly:hover,
#restart-game:hover {
	background-color: var(--orange_shade1);
}

#start-game:active,
#place-randomly:active,
#restart-game:active {
	background-color: var(--orange_shade2);
}

#prefetch1 {
	background: url('../img/cross-icon.svg');
}

#prefetch2 {
	background: url('../img/crosshair.png');
}

.prefetch {
	/* JFD: for all three prefetches */
	background-repeat: no-repeat;
	background-position: var(--out_of_sight) var(--out_of_sight);
}

.tagline,
h1,
h2 {
	margin-bottom: 0em;
	margin-block-start: 0.0em;
	margin-block-end: 0.0em;
}

.container {
	text-align: center;
	margin: 20px auto 100px auto;
}

.game-container {
	display: flex;
	flex-direction: row;
	justify-content: center;
	gap: var(--game-container-gap);
}

#roster-sidebar,
#stats-sidebar,
#restart-sidebar {
	width: var(--sidebar_width);
	padding: var(--sidebar_padding);
	margin: 0;
	background-color: #EEEEEE;
	top: 1em;
	border-radius: 5px;
}

#roster-sidebar h2,
#stats-sidebar h2,
#restart-sidebar h2 {
	margin: 0 0 1em 0;
	text-align: center;
}

.fleet-roster {
	position: relative;
	list-style: none;
	padding: 0;
}

/* JFD: button boat */
.fleet-roster,
button {
	opacity: 1;
	transition: opacity 0.5s ease-out;
}

.fleet-roster li {
	margin: 0.5em 0;
}

/* JFD: light and hand cursor */
.fleet-roster li:hover {
	color: #aaa;
	cursor: pointer;
}

/* JFD: selected boat */
.fleet-roster .placing {
	font-weight: bold;
}

/* JFD: hide placed boat */
.fleet-roster .placed {
	visibility: hidden;
	font-weight: bold;
	opacity: 0;
	transition: all 0.2s ease-in;
}

.invisible {
	/* JFD: specific for roster-sidebar and rotate-button; setting it hidden and doing these below. */
	opacity: 0;
	transition: opacity 0.5s ease-in;
	z-index: -20;
	/* JFD: to prevent click */
}

.hidden {
	display: none;
}

.tooltip {
	position: absolute;
	display: none;
	background-color: var(--white);
	color: var(--orange_shade0);
	padding: var(--tooltip_padding);
	border-radius: var(--tooltip_border-radius);
}

/* JFD: board */
.grid-container {
	width: var(--board_width_with_padding);
	display: inline-block;
}

.grid {
	position: relative;
	vertical-align: top;
	padding: var(--std_padding);
	height: var(--board_width);
	width: var(--board_width);
	background-color: #25567B;
	border-radius: 5px;
}


/* JFD: will be removed by JS */
.no-js {
	width: 300px;
	height: 300px;
	margin: 100px auto;
	display: inline-block;
	color: #EEEEEE;
	font-size: 2em;
}

.grid-cell {
	vertical-align: top;
	/*clears the vertical space between rows*/
	height: var(--cell_width);
	width: var(--cell_width);
	display: inline-block;
	background-color: var(--grid_color);
	margin: 1px;
	border-radius: 2px;
}

.grid-cell:hover {
	cursor: pointer;
	background-color: var(--buttonblue_shade);
}

.human-player .grid-cell:hover {
	background-color: var(--buttonblue);
}

/* JFD: only on AI board. Image prefetched. */
.computer-player .grid-cell:hover,
.computer-player:hover {
	cursor: url('../img/crosshair.png') 16 16, crosshair;
}


.grid-ship,
.human-player .grid-ship:hover {
	/* JFD: human-player's board from here and on. */
	background-color: #808080;
}

.grid-miss,
.grid-miss:hover,
.human-player .grid-miss:hover {
	background-color: white;
	background-image: url('../img/cross-icon.svg');
	background-position: center;
	background-repeat: no-repeat;
}

.grid-hit,
.grid-hit:hover,
.human-player .grid-hit:hover {
	background-color: #F60018;
	background-image: url('../img/cross-icon.svg');
	background-position: center;
	background-repeat: no-repeat;
}

.grid-sunk,
.grid-sunk:hover,
.human-player .grid-sunk:hover {
	background-color: #222222;
}