.gfev-root {
	--gfev-bg: #101116;
	--gfev-bg-alt: #1c1e24;
	--gfev-text: #f1f5f9;
	--gfev-text-dim: #a3a9b7;
	--gfev-accent: #c5a880;
	--gfev-accent-text: #101116;
	--gfev-border: rgba(197, 168, 128, 0.35);
	height: 0;
}

.gfev-fab {
	position: fixed;
	z-index: 99996;
	top: 50%;
	right: 0;
	/* Sits above Game Finder's own fallback fab if that is also active. */
	transform: translateY(calc(-50% - 90px));
	background: var(--gfev-accent);
	color: var(--gfev-accent-text);
	border: none;
	border-radius: 8px 0 0 8px;
	padding: 14px 10px;
	font: 600 13px/1.2 inherit;
	cursor: pointer;
	writing-mode: vertical-rl;
	text-orientation: mixed;
	letter-spacing: 0.03em;
	box-shadow: -2px 2px 10px rgba(0,0,0,0.25);
}

@media (max-width: 640px) {
	.gfev-fab {
		top: auto;
		bottom: 152px;
		right: 16px;
		transform: none;
		writing-mode: horizontal-tb;
		border-radius: 999px;
		padding: 12px 18px;
	}
}

.gfev-overlay {
	position: fixed;
	inset: 0;
	background: rgba(6, 7, 10, 0.6);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.2s ease;
	z-index: 99997;
}
.gfev-overlay.is-open { opacity: 1; visibility: visible; }

.gfev-panel {
	position: fixed;
	top: 0;
	right: 0;
	height: 100vh;
	width: 560px;
	max-width: 94vw;
	background: var(--gfev-bg);
	color: var(--gfev-text);
	border-left: 1px solid var(--gfev-border);
	box-shadow: -20px 0 60px rgba(0,0,0,0.45);
	transform: translateX(100%);
	transition: transform 0.25s ease;
	z-index: 99998;
	display: flex;
	flex-direction: column;
}
.gfev-panel.is-open { transform: translateX(0); }

.gfev-panel-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 22px;
	border-bottom: 1px solid var(--gfev-border);
	flex-shrink: 0;
}
.gfev-panel-title { margin: 0; font-size: 19px; font-weight: 700; color: var(--gfev-text); }
.gfev-close {
	background: none;
	border: none;
	color: var(--gfev-text-dim);
	font-size: 24px;
	line-height: 1;
	cursor: pointer;
	padding: 4px 8px;
}
.gfev-close:hover { color: var(--gfev-text); }

.gfev-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding: 14px 22px;
	border-bottom: 1px solid var(--gfev-border);
	flex-shrink: 0;
}
.gfev-filter {
	background: var(--gfev-bg-alt);
	color: var(--gfev-text-dim);
	border: 1px solid transparent;
	border-radius: 999px;
	padding: 7px 14px;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
}
.gfev-filter.is-active {
	background: var(--gfev-accent);
	color: var(--gfev-accent-text);
}

.gfev-feed {
	flex: 1 1 auto;
	overflow-y: auto;
	padding: 18px 22px 40px;
}

.gfev-empty { color: var(--gfev-text-dim); font-size: 14px; }

.gfev-card {
	background: var(--gfev-bg-alt);
	border: 1px solid var(--gfev-border);
	border-radius: 12px;
	padding: 16px 18px;
	margin-bottom: 14px;
}
.gfev-card-head { display: flex; gap: 8px; margin-bottom: 10px; }
.gfev-badge {
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	padding: 3px 9px;
	border-radius: 999px;
}
.gfev-badge-cat { background: rgba(197,168,128,0.15); color: var(--gfev-accent); }
.gfev-badge-status { background: rgba(255,255,255,0.08); color: var(--gfev-text-dim); }
.gfev-status-active .gfev-badge-status { background: rgba(74, 222, 128, 0.15); color: #4ade80; }
.gfev-status-upcoming .gfev-badge-status { background: rgba(96, 165, 250, 0.15); color: #60a5fa; }
.gfev-status-ended .gfev-badge-status { background: rgba(148,163,184,0.15); color: #94a3b8; }

.gfev-card-title { margin: 0 0 8px; font-size: 17px; font-weight: 700; color: var(--gfev-text); }
.gfev-card-desc { margin: 0 0 10px; font-size: 13px; color: var(--gfev-text-dim); line-height: 1.5; }
.gfev-timer { font-size: 13px; font-weight: 700; color: var(--gfev-accent); margin-bottom: 10px; }
.gfev-meta-row { font-size: 13px; color: var(--gfev-text-dim); margin-bottom: 6px; line-height: 1.4; }
.gfev-meta-row strong { color: var(--gfev-text); }

.gfev-btn {
	display: inline-block;
	margin-top: 10px;
	padding: 9px 18px;
	border-radius: 999px;
	background: var(--gfev-accent);
	color: var(--gfev-accent-text);
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
}
