/**
 * AMG Labs Minesweeper Game Styles
 *
 * @package AMGLabs_Minesweeper
 * @since 1.0.0
 */

.amglabs-minesweeper {
	--amg-cell-size: 24px;
	--amg-border-light: #fff;
	--amg-border-dark: #7b7b7b;
	--amg-bg-main: #c0c0c0;
	--amg-bg-revealed: #bdbdbd;
	--amg-text-1: #0000ff;
	--amg-text-2: #008000;
	--amg-text-3: #ff0000;
	--amg-text-4: #000080;
	--amg-text-5: #800000;
	--amg-text-6: #008080;
	--amg-text-7: #000;
	--amg-text-8: #808080;
	display: inline-flex;
	flex-direction: column;
	align-items: stretch;
	max-width: 100%;
	overflow-x: auto;
	background-color: var(--amg-bg-main);
	padding: 10px;
	border: 3px solid;
	border-color: var(--amg-border-light) var(--amg-border-dark) var(--amg-border-dark) var(--amg-border-light);
	font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}

/* Header */
.amglabs-minesweeper__header {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-bottom: 6px;
}

.amglabs-minesweeper__controls {
	display: flex;
	justify-content: center;
}

.amglabs-minesweeper__difficulty {
	padding: 2px 6px;
	font-size: 12px;
	background-color: var(--amg-bg-main);
	border: 2px solid;
	border-color: var(--amg-border-dark) var(--amg-border-light) var(--amg-border-light) var(--amg-border-dark);
	cursor: pointer;
}

.amglabs-minesweeper__difficulty:focus {
	outline: 2px solid #000;
	outline-offset: 1px;
}

.amglabs-minesweeper__stats {
	display: flex;
	justify-content: space-between;
	align-items: center;
	background-color: var(--amg-bg-main);
	padding: 4px 6px;
	border: 3px solid;
	border-color: var(--amg-border-dark) var(--amg-border-light) var(--amg-border-light) var(--amg-border-dark);
}

.amglabs-minesweeper__mines,
.amglabs-minesweeper__timer {
	display: flex;
	align-items: center;
	gap: 4px;
}

.amglabs-minesweeper__label {
	display: none;
}

.amglabs-minesweeper__mines-count,
.amglabs-minesweeper__time {
	background-color: #000;
	color: #f00;
	font-family: 'Courier New', Courier, monospace;
	font-size: 18px;
	font-weight: bold;
	padding: 2px 4px;
	min-width: 36px;
	text-align: center;
	border: 2px solid;
	border-color: var(--amg-border-dark) var(--amg-border-light) var(--amg-border-light) var(--amg-border-dark);
}

/* Restart Button / Face */
.amglabs-minesweeper__restart {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	padding: 0;
	background-color: var(--amg-bg-main);
	border: 3px solid;
	border-color: var(--amg-border-light) var(--amg-border-dark) var(--amg-border-dark) var(--amg-border-light);
	cursor: pointer;
	flex-shrink: 0;
}

.amglabs-minesweeper__restart:active {
	border-color: var(--amg-border-dark) var(--amg-border-light) var(--amg-border-light) var(--amg-border-dark);
}

.amglabs-minesweeper__restart:focus {
	outline: 2px solid #000;
	outline-offset: 1px;
}

.amglabs-minesweeper__face {
	font-size: 18px;
	line-height: 1;
}

.amglabs-minesweeper__face--smile::before {
	content: '🙂';
}

.amglabs-minesweeper__face--surprise::before {
	content: '😮';
}

.amglabs-minesweeper__face--dead::before {
	content: '😵';
}

.amglabs-minesweeper__face--cool::before {
	content: '😎';
}

/* Game Board */
.amglabs-minesweeper__board {
	display: grid;
	gap: 0;
	border: 3px solid;
	border-color: var(--amg-border-dark) var(--amg-border-light) var(--amg-border-light) var(--amg-border-dark);
	background-color: var(--amg-bg-main);
	justify-self: center;
}

/* Cells */
.amglabs-minesweeper__cell {
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--amg-cell-size);
	height: var(--amg-cell-size);
	min-width: var(--amg-cell-size);
	min-height: var(--amg-cell-size);
	padding: 0;
	margin: 0;
	font-family: 'Arial', sans-serif;
	font-size: 14px;
	font-weight: bold;
	background-color: var(--amg-bg-main);
	border: 2px solid;
	border-color: var(--amg-border-light) var(--amg-border-dark) var(--amg-border-dark) var(--amg-border-light);
	cursor: pointer;
	user-select: none;
	-webkit-user-select: none;
	box-sizing: border-box;
	flex-shrink: 0;
}

.amglabs-minesweeper__cell:focus {
	outline: 2px solid #000;
	outline-offset: -2px;
	z-index: 1;
}

.amglabs-minesweeper__cell:active:not(.amglabs-minesweeper__cell--revealed) {
	border-color: var(--amg-border-dark);
	border-width: 1px;
}

/* Revealed cells */
.amglabs-minesweeper__cell--revealed {
	background-color: var(--amg-bg-revealed);
	border: 1px solid var(--amg-border-dark);
	cursor: default;
}

/* Number colors */
.amglabs-minesweeper__cell[data-number="1"] {
	color: var(--amg-text-1);
}

.amglabs-minesweeper__cell[data-number="2"] {
	color: var(--amg-text-2);
}

.amglabs-minesweeper__cell[data-number="3"] {
	color: var(--amg-text-3);
}

.amglabs-minesweeper__cell[data-number="4"] {
	color: var(--amg-text-4);
}

.amglabs-minesweeper__cell[data-number="5"] {
	color: var(--amg-text-5);
}

.amglabs-minesweeper__cell[data-number="6"] {
	color: var(--amg-text-6);
}

.amglabs-minesweeper__cell[data-number="7"] {
	color: var(--amg-text-7);
}

.amglabs-minesweeper__cell[data-number="8"] {
	color: var(--amg-text-8);
}

/* Flagged cells */
.amglabs-minesweeper__cell--flagged::before {
	content: '🚩';
	font-size: 14px;
}

/* Question mark cells */
.amglabs-minesweeper__cell--question::before {
	content: '?';
	font-size: 16px;
	font-weight: bold;
	color: #000;
}

/* Mine cells */
.amglabs-minesweeper__cell--mine {
	background-color: var(--amg-bg-revealed);
	border: 1px solid var(--amg-border-dark);
}

.amglabs-minesweeper__cell--mine::before {
	content: '💣';
	font-size: 14px;
}

/* Exploded mine */
.amglabs-minesweeper__cell--exploded {
	background-color: #f00;
}

/* Wrong flag */
.amglabs-minesweeper__cell--wrong {
	background-color: var(--amg-bg-revealed);
	border: 1px solid var(--amg-border-dark);
}

.amglabs-minesweeper__cell--wrong::before {
	content: '❌';
	font-size: 14px;
}

/* Message area */
.amglabs-minesweeper__message {
	margin-top: 10px;
	padding: 5px 10px;
	text-align: center;
	font-size: 14px;
	font-weight: bold;
	min-height: 24px;
}

.amglabs-minesweeper__message:not(:empty) {
	background-color: #ffffe0;
	border: 1px solid #e6db55;
}

/* Screen reader only */
.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Responsive adjustments */
@media screen and (max-width: 800px) {
	.amglabs-minesweeper {
		--amg-cell-size: 22px;
	}

	.amglabs-minesweeper__cell {
		font-size: 13px;
	}

	.amglabs-minesweeper__cell--flagged::before,
	.amglabs-minesweeper__cell--mine::before,
	.amglabs-minesweeper__cell--wrong::before {
		font-size: 13px;
	}
}

@media screen and (max-width: 600px) {
	.amglabs-minesweeper {
		--amg-cell-size: 20px;
	}

	.amglabs-minesweeper__cell {
		font-size: 12px;
	}

	.amglabs-minesweeper__cell--flagged::before,
	.amglabs-minesweeper__cell--mine::before,
	.amglabs-minesweeper__cell--wrong::before {
		font-size: 12px;
	}
}
