/* =====================================================================
 * Faragiri — Theme Switcher UI (trigger button + popover panel)
 * Enqueued by mu-plugin faragiri-theme-switcher.php. Premium glass /
 * gradient aesthetic, RTL, fully reduced-motion safe. The palette tokens
 * (--fg-*) come from theme-switcher-core.css (inlined in <head>).
 * ===================================================================== */

/* ---- trigger button (lives in the header icon row) ------------------ */
.fgts-trigger {
	--s: 42px;
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--s);
	height: var(--s);
	margin-inline: 4px;
	padding: 0;
	border: 1px solid rgba(255,255,255,.16);
	border-radius: 50%;
	background:
		radial-gradient(120% 120% at 30% 20%, color-mix(in srgb, var(--fg-accent,#24baef) 30%, transparent), transparent 62%),
		rgba(255,255,255,.06);
	color: var(--fg-header-ink, #fff);
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	transition: transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s, border-color .25s;
	-webkit-tap-highlight-color: transparent;
}
.fgts-trigger:hover { transform: translateY(-1px) rotate(8deg); border-color: var(--fg-accent-line, rgba(255,255,255,.4)); box-shadow: 0 6px 20px -8px var(--fg-accent,#24baef); }
.fgts-trigger:active { transform: scale(.94); }
.fgts-trigger:focus-visible { outline: 2px solid var(--fg-accent,#24baef); outline-offset: 2px; }
.fgts-trigger svg { width: 21px; height: 21px; display: block; }
/* little colour dot that mirrors the active accent */
.fgts-trigger::after {
	content: "";
	position: absolute;
	inset-block-end: 5px;
	inset-inline-end: 5px;
	width: 9px; height: 9px;
	border-radius: 50%;
	background: var(--fg-accent, #24baef);
	box-shadow: 0 0 0 2px var(--fg-header, #0c0e17), 0 0 8px var(--fg-accent,#24baef);
}

/* the handheld header version sits in the right cluster */
.vodi-handheld-header .fgts-trigger { --s: 38px; }

/* ---- backdrop ------------------------------------------------------- */
.fgts-backdrop {
	position: fixed;
	inset: 0;
	z-index: 100000;
	background: rgba(4,6,12,.5);
	backdrop-filter: blur(3px);
	-webkit-backdrop-filter: blur(3px);
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s ease, visibility .3s;
}
.fgts-open .fgts-backdrop { opacity: 1; visibility: visible; }

/* ---- panel ---------------------------------------------------------- */
.fgts-panel {
	position: fixed;
	z-index: 100001;
	inset-block-start: 50%;
	inset-inline-end: 24px;
	inset-inline-start: auto;
	transform: translateY(-50%) scale(.96);
	transform-origin: top left;
	width: min(380px, calc(100vw - 32px));
	max-height: min(86vh, 720px);
	overflow: auto;
	direction: rtl;
	padding: 20px;
	border-radius: 22px;
	border: 1px solid var(--fg-border, rgba(255,255,255,.14));
	background:
		radial-gradient(130% 90% at 100% 0%, color-mix(in srgb, var(--fg-accent,#24baef) 14%, transparent), transparent 60%),
		color-mix(in srgb, var(--fg-surface, #131722) 92%, transparent);
	-webkit-backdrop-filter: blur(22px) saturate(150%);
	backdrop-filter: blur(22px) saturate(150%);
	box-shadow: 0 30px 80px -28px rgba(0,0,0,.7), 0 0 0 1px rgba(255,255,255,.04) inset;
	color: var(--fg-text, #eef1f7);
	opacity: 0;
	visibility: hidden;
	transition: opacity .32s cubic-bezier(.2,.8,.2,1), transform .32s cubic-bezier(.2,.8,.2,1), visibility .32s;
	font-family: inherit;
}
.fgts-open .fgts-panel { opacity: 1; visibility: visible; transform: translateY(-50%) scale(1); }

/* header of the panel */
.fgts-panel__head { display: flex; align-items: center; gap: 10px; margin-bottom: 4px; }
.fgts-panel__icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 34px; height: 34px; border-radius: 11px; flex: none;
	background: var(--fg-accent-soft, rgba(36,186,239,.15));
	color: var(--fg-accent, #24baef);
}
.fgts-panel__icon svg { width: 19px; height: 19px; }
.fgts-panel__title { font-size: 16px; font-weight: 800; margin: 0; line-height: 1.3; }
.fgts-panel__sub { font-size: 12px; margin: 0; color: var(--fg-text-2, #9aa3b8); }
.fgts-panel__close {
	margin-inline-start: auto; flex: none;
	width: 32px; height: 32px; border-radius: 10px;
	display: inline-flex; align-items: center; justify-content: center;
	background: transparent; color: var(--fg-text-2, #9aa3b8);
	border: 1px solid var(--fg-border, rgba(255,255,255,.12));
	cursor: pointer; transition: color .2s, border-color .2s, transform .2s;
}
.fgts-panel__close:hover { color: var(--fg-text,#fff); border-color: var(--fg-accent,#24baef); transform: rotate(90deg); }
.fgts-panel__close svg { width: 16px; height: 16px; }

/* quick light / dark segmented toggle */
.fgts-base {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 6px;
	margin: 16px 0;
	padding: 5px;
	border-radius: 14px;
	background: color-mix(in srgb, var(--fg-bg, #0c0e17) 55%, transparent);
	border: 1px solid var(--fg-border, rgba(255,255,255,.1));
}
.fgts-base__btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 10px; border: 0; border-radius: 10px; cursor: pointer;
	font: inherit; font-size: 13.5px; font-weight: 700;
	background: transparent; color: var(--fg-text-2, #9aa3b8);
	transition: background .25s, color .25s, box-shadow .25s;
}
.fgts-base__btn svg { width: 17px; height: 17px; }
.fgts-base__btn[aria-pressed="true"] {
	background: var(--fg-surface, #131722);
	color: var(--fg-text, #fff);
	box-shadow: 0 4px 14px -8px rgba(0,0,0,.8);
}

.fgts-label { font-size: 11.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--fg-text-2,#9aa3b8); margin: 0 2px 10px; }

/* swatch grid */
.fgts-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 10px;
}
.fgts-swatch {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 7px;
	padding: 10px 6px 8px;
	border: 1px solid var(--fg-border, rgba(255,255,255,.1));
	border-radius: 14px;
	background: color-mix(in srgb, var(--fg-bg, #0c0e17) 45%, transparent);
	cursor: pointer;
	font: inherit;
	color: var(--fg-text, #eef1f7);
	transition: transform .2s cubic-bezier(.2,.8,.2,1), border-color .2s, background .2s;
}
.fgts-swatch:hover { transform: translateY(-2px); border-color: var(--sw-accent); background: color-mix(in srgb, var(--sw-accent) 12%, transparent); }
.fgts-swatch:focus-visible { outline: 2px solid var(--sw-accent); outline-offset: 2px; }
.fgts-swatch__chip {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 11;
	border-radius: 9px;
	overflow: hidden;
	background: var(--sw-bg);
	border: 1px solid rgba(255,255,255,.08);
	box-shadow: 0 4px 12px -8px rgba(0,0,0,.9);
}
.fgts-swatch__chip::before { /* accent stroke */
	content: "";
	position: absolute;
	inset-block-start: 26%;
	inset-inline: 16%;
	height: 13%;
	border-radius: 20px;
	background: var(--sw-accent);
	box-shadow: 0 0 10px var(--sw-accent);
}
.fgts-swatch__chip::after { /* secondary bars */
	content: "";
	position: absolute;
	inset-block-end: 22%;
	inset-inline: 16%;
	height: 10%;
	border-radius: 20px;
	background: var(--sw-surface);
}
.fgts-swatch__name { font-size: 12px; font-weight: 700; line-height: 1.2; }
.fgts-swatch__tick {
	position: absolute;
	inset-block-start: 6px;
	inset-inline-start: 6px;
	width: 20px; height: 20px;
	display: flex; align-items: center; justify-content: center;
	border-radius: 50%;
	background: var(--sw-accent);
	color: #fff;
	transform: scale(0);
	transition: transform .26s cubic-bezier(.2,1.4,.4,1);
}
.fgts-swatch__tick svg { width: 12px; height: 12px; }
.fgts-swatch[aria-checked="true"] {
	border-color: var(--sw-accent);
	background: color-mix(in srgb, var(--sw-accent) 16%, transparent);
	box-shadow: 0 0 0 1px var(--sw-accent) inset, 0 10px 26px -14px var(--sw-accent);
}
.fgts-swatch[aria-checked="true"] .fgts-swatch__tick { transform: scale(1); }

.fgts-foot { margin: 16px 2px 0; font-size: 11.5px; line-height: 1.7; color: var(--fg-text-2, #9aa3b8); text-align: center; }

/* ---- mobile: dock as a bottom sheet -------------------------------- */
@media (max-width: 560px) {
	.fgts-panel {
		inset-block-start: auto;
		inset-block-end: 0;
		inset-inline: 0;
		width: 100%;
		max-height: 88vh;
		transform: translateY(100%);
		border-radius: 24px 24px 0 0;
		padding: 18px 16px calc(18px + env(safe-area-inset-bottom));
	}
	.fgts-open .fgts-panel { transform: translateY(0); }
	.fgts-grid { grid-template-columns: repeat(4, 1fr); gap: 8px; }
	.fgts-swatch__name { font-size: 11px; }
}
@media (max-width: 360px) {
	.fgts-grid { grid-template-columns: repeat(3, 1fr); }
}

/* ---- reduced motion ------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	.fgts-trigger, .fgts-panel, .fgts-backdrop, .fgts-swatch,
	.fgts-base__btn, .fgts-panel__close, .fgts-swatch__tick {
		transition: none !important;
	}
	.fgts-trigger:hover { transform: none; }
}

/* graceful fallback if color-mix is unsupported (very old browsers) */
@supports not (background: color-mix(in srgb, red 10%, transparent)) {
	.fgts-panel { background: var(--fg-surface, #131722); }
	.fgts-swatch, .fgts-base { background: rgba(255,255,255,.05); }
	.fgts-trigger { background: var(--fg-surface, rgba(255,255,255,.08)); }
}
