ui/components/menu/menumapgrid.razor.scss
@import "/ui/styles/_theme.scss";

MenuMapGrid {
	flex-direction: row;
	flex-wrap: wrap;
	gap: 20px;

	.map-grid-card {
		pointer-events: all;
		cursor: pointer;
		flex-direction: column;
		width: 320px;
		background-color: rgba(33, 33, 35, 0.9);
		border: 1px solid $border;
		border-bottom: 3px solid $secondary-strong;
		transition: background-color 0.12s ease-out, border-color 0.12s ease-out, transform 0.12s ease-out;

		.map-grid-thumb {
			position: relative;
			width: 100%;
			height: 180px;
			background-color: $panel-glass;
			border-bottom: 1px solid $border;
			justify-content: center;
			align-items: center;

			.map-grid-image {
				position: absolute;
				top: 0; right: 0; bottom: 0; left: 0;
				background-size: cover;
				background-position: center;
			}

			.map-grid-placeholder {
				color: $text-dim;
				opacity: 0.4;
			}

			.map-grid-badge {
				position: absolute;
				top: 8px;
				right: 8px;
				font-family: $font-primary;
				font-size: 13px;
				font-weight: 800;
				letter-spacing: 2px;
				text-transform: uppercase;
				padding: 4px 10px;
				color: $text;
				background-color: rgba(33, 33, 35, 0.65);
				border: 1px solid transparent;

				&.tone-primary {
					border-color: $primary-line;
					background-color: rgba(211, 160, 104, 0.28);
				}

				&.tone-confirm {
					border-color: $success-line;
					background-color: rgba(138, 176, 96, 0.28);
				}

				&.tone-danger {
					border-color: $danger-line;
					background-color: rgba(180, 82, 82, 0.28);
				}
			}

			.map-grid-overlay {
				position: absolute;
				top: 0; right: 0; bottom: 0; left: 0;
				flex-direction: column;
				justify-content: center;
				align-items: center;
				gap: 8px;
				background-color: rgba(33, 33, 35, 0.7);

				.overlay-icon { color: $text-dim; }

				.overlay-text {
					font-family: $font-primary;
					font-size: 22px;
					font-weight: 700;
					letter-spacing: 3px;
					text-transform: uppercase;
					color: $text;
					text-shadow: $text-shadow;
				}

				&.selected-overlay {
					background-color: rgba(138, 176, 96, 0.4);
					.overlay-icon { color: $success; }
				}
			}
		}

		.map-grid-info {
			padding: 16px 18px;
			flex-direction: column;
			gap: 4px;
		}

		.map-grid-title {
			font-family: $font-primary;
			font-size: 22px;
			font-weight: 700;
			letter-spacing: 2px;
			text-transform: uppercase;
			color: $text;
		}

		.map-grid-desc {
			font-family: $font-secondary;
			font-size: 14px;
			color: $text;
			opacity: 0.75;
		}

		&:hover {
			background-color: rgba(33, 33, 35, 0.95);
			border-bottom-color: $danger;
			transform: translateY(-2px);
		}

		&.selected {
			border-bottom-color: $success;
			background-color: rgba(33, 33, 35, 0.92);
		}

		&.coming-soon, &.locked {
			cursor: default;
			opacity: 0.75;

			&:hover {
				background-color: rgba(33, 33, 35, 0.9);
				border-bottom-color: $secondary-strong;
				transform: none;
			}
		}
	}
}