:root {
	/* Base Theme */
	--color-background: green;
	--color-text: white;
	--color-link: #eee;
	--color-link-hover: #1976D2;
	--color-muted: #666;

	/* Error */
	--color-error-bg: #ffebee;
	--color-error-text: #red;

	/* Badge */
	--color-badge-border: #333;
	--color-badge-bg: #1a1a1a;
	--color-badge-text: #eeeeee90;

	/* Level MAX */
	--color-lvmax-bg: #c9b03b;
	--color-lvmax-border: #7f733a;
	--color-lvmax-text: #2a2a2a;
	--color-lvmax-image-border: #7f733a;

	/* Level 3 */
	--color-lv3-bg: #3F4962;
	--color-lv3-border: #667999;

	/* Level 2 */
	--color-lv2-bg: #4c523f;
	--color-lv2-border: #91a666;

	/* Level 1 */
	--color-lv1-bg: #2a2a2a;
	--color-lv1-border: #4a4a4a;
}

body {
	font-family: 'Liberation Sans', sans-serif;
	background-color: var(--color-background);
	color: var(--color-text);
}

h1 {
	font-size: xxx-large;
	/* text-shadow: 7px 5px 3px black; */
}

.grid-container {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 20px;
	padding: 20px;
	max-width: 1200px;
	margin: 0 auto;
}

.grid-item {
	border-radius: 12px;
	padding: 20px;
	text-align: center;
	/* box-shadow: 10px 9px 7px black; */
	font-size: medium;
}

.item-image {
	width: 80px;
	height: 80px;
	border-radius: 50%;
	margin: 0 auto 15px auto;
	display: block;
	object-fit: cover;
}

.item-link {
	color: var(--color-link);
	text-decoration: none;
	font-weight: 500;
	font-size: 16px;
	font-family: 'Liberation Mono', sans-serif;
}

.item-link:hover {
	text-decoration: underline;
	color: var(--color-link-hover);
}

.loading {
	text-align: center;
	padding: 20px;
	font-size: 18px;
	color: var(--color-muted);
}

.error {
	background: var(--color-error-bg);
	color: var(--color-error-text);
	padding: 15px;
	border-radius: 8px;
	margin: 20px;
	text-align: center;
}

.badge-container {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	margin-left: 10px;
	position: absolute;
}

.badge-icon {
	width: 40px;
	height: 40px;
	border: 2px solid var(--color-badge-border);
	border-radius: 6px;
	background-color: var(--color-badge-bg);
}

.badge-text {
	margin-top: 4px;
	text-align: center;
	font-size: small;
	font-family: 'Liberation Mono', sans-serif;
	opacity: 66%;
	font-weight: bold;
	color: var(--color-badge-text);
}


/* ---------- LEVEL MAX ---------- */
.grid-item-lvmax {
	background-color: var(--color-lvmax-bg);
	border: 4px solid var(--color-lvmax-border);
	color: var(--color-lvmax-text);
	font-weight: bold;
}
.grid-item-lvmax .item-link {
	font-size: xx-large;
	font-family: 'Liberation Mono', sans-serif;
	color: var(--color-lvmax-text);
	font-weight: bold;
}
.grid-item-lvmax .item-image {
	width: 160px;
	height: 160px;
	border: 7px solid var(--color-lvmax-image-border);
}
.grid-item-lvmax .badge-container {
	margin-left: 160px;
	margin-top: 90px;
}
.grid-item-lvmax .badge-icon {
	border: 4px solid var(--color-lvmax-image-border);
}
.grid-item-lvmax .badge-text {
	font-size: small;
}


/* ---------- LEVEL 3 ---------- */
.grid-item-lv3 {
	background-color: var(--color-lv3-bg);
	border: 4px solid var(--color-lv3-border);
}
.grid-item-lv3 .item-link {
	font-size: x-large;
	font-family: 'Liberation Mono', sans-serif;
}
.grid-item-lv3 .item-image {
	width: 120px;
	height: 120px;
	border: 7px solid var(--color-lv3-border);
}
.grid-item-lv3 .badge-container {
	margin-left: 120px;
	margin-top: 60px;
}
.grid-item-lv3 .badge-icon {
	border: 4px solid var(--color-lv3-border);
}


/* ---------- LEVEL 2 ---------- */
.grid-item-lv2 {
	background-color: var(--color-lv2-bg);
	border: 4px solid var(--color-lv2-border);
}
.grid-item-lv2 .item-image {
	width: 90px;
	height: 90px;
	border: 4px solid var(--color-lv2-border);
}
.grid-item-lv2 .item-link {
	font-family: 'Liberation Mono', sans-serif;
	font-size: large;
}
.grid-item-lv2 .badge-icon {
	width: 40px;
	height: 40px;
	border: 3px solid var(--color-lv2-border);
}
.grid-item-lv2 .badge-container {
	margin-left: 110px;
	margin-top: 60px;
}


/* ---------- LEVEL 1 ---------- */
.grid-item-lv1 {
	background-color: var(--color-lv1-bg);
	border: 4px solid var(--color-lv1-border);
}
.grid-item-lv1 .item-link {
	font-family: 'Liberation Mono', sans-serif;
	font-size: medium;
}
.grid-item-lv1 .item-image {
	width: 60px;
	height: 60px;
	border: 3px solid var(--color-lv1-border);
}
.grid-item-lv1 .badge-icon {
	width: 32px;
	height: 32px;
	border: 2px solid var(--color-lv1-border);
}
.grid-item-lv1 .badge-text {
	font-size: x-small;
}
.grid-item-lv1 .badge-container {
	margin-left: 70px;
	margin-top: 30px;
}
