.vibedesk-theme-dark {
	--vd-primary: #3b82f6;
	--vd-bg-page: #0f0f0f;
	--vd-bg-surface: #1a1a1a;
	--vd-border: #2a2a2a;
	--vd-text-main: #ffffff;
	--vd-text-muted: #a1a1aa;
	--vd-overlay: rgba(0, 0, 0, 0.7);
	--vd-overlay-hover: rgba(0, 0, 0, 0.5);
	--vd-ipod-screen: #000000;
	--vd-ipod-shell: #1a1a1a;
	--vd-ipod-border: #444444;
    --vd-btn-outline: #555555;
    --vd-shadow: rgba(0, 0, 0, 0.5);
    --vd-input-bg: #0f0f0f;
}

.vibedesk-theme-light {
	--vd-primary: #3b82f6;
	--vd-bg-page: #f4f4f5;
	--vd-bg-surface: #ffffff;
	--vd-border: #e4e4e7;
	--vd-text-main: #18181b;
	--vd-text-muted: #71717a;
	--vd-overlay: rgba(255, 255, 255, 0.85);
	--vd-overlay-hover: rgba(255, 255, 255, 0.7);
	--vd-ipod-screen: #000000;
	--vd-ipod-shell: #e4e4e7;
	--vd-ipod-border: #d4d4d8;
    --vd-btn-outline: #d4d4d8;
    --vd-shadow: rgba(0, 0, 0, 0.1);
    --vd-input-bg: #ffffff;
}

.vibedesk-elementor-wrapper {
	position: relative;
	font-family: inherit;
    color: var(--vd-text-main);
	box-sizing: border-box !important;
	opacity: 0;
	transition: opacity 0.4s ease;
}
.vibedesk-elementor-wrapper.is-ready {
	opacity: 1 !important;
}
.vibedesk-elementor-wrapper * {
	box-sizing: border-box !important;
}

/* ==================================================================
   PLAYER WIDGET STYLES
   ================================================================== */

.vibedesk-tool-header-left {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 2rem;
	gap: 20px;
}
.vibedesk-tool-title { font-size: 2.5rem; font-weight: 800; margin: 0; letter-spacing: -0.02em; flex-shrink: 0; color: var(--vd-text-main); }
.vibedesk-text-muted { color: var(--vd-text-muted); }
.vibedesk-tool-description { margin: 0; text-align: right; color: var(--vd-text-main); }

.vibedesk-mixer-layout {
	display: grid;
	grid-template-columns: 320px minmax(0, 1fr);
	gap: 80px;
	align-items: stretch;
}

@media (max-width: 850px) {
	.vibedesk-mixer-layout { grid-template-columns: minmax(0, 1fr); gap: 40px; width: 100%; }
	.vibedesk-tool-header-left { flex-direction: column; text-align: center; align-items: center; justify-content: center; gap: 10px; }
	.vibedesk-tool-description { text-align: center; }
	.vibedesk-ipod-container { align-items: center !important; }
	.vibedesk-ipod-shell { margin: 0 auto !important; }
}

.vibedesk-ipod-container { display: flex; flex-direction: column; align-items: flex-start; width: 100%; }
.vibedesk-ipod-shell {
	width: 100%; max-width: 320px; height: 580px;
	background: var(--vd-ipod-shell); border-radius: 45px; padding: var(--vd-ipod-padding, 15px);
	box-shadow: 0 0 0 4px var(--vd-border), 0 20px 50px var(--vd-shadow), inset 0 0 10px rgba(0, 0, 0, 0.05);
	border: 2px solid var(--vd-ipod-border); display: flex; flex-direction: column; margin: 0;
}

.vibedesk-ipod-screen {
	width: 100%; height: 220px; background: var(--vd-ipod-screen); border-radius: 25px;
	overflow: hidden; position: relative; margin-bottom: 25px; box-shadow: inset 0 0 15px rgba(0,0,0,0.2);
}

#vibedesk-yt-player { width: 100%; height: 100%; pointer-events: none; }

.vibedesk-player-overlay {
	position: absolute; inset: 0; background: var(--vd-overlay);
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	color: var(--vd-text-main); z-index: 10; backdrop-filter: blur(4px); transition: opacity 0.4s ease;
	cursor: pointer; text-align: center;
}
.vibedesk-player-overlay:hover { background: var(--vd-overlay-hover); }

.vibedesk-ipod-controls { flex: 1; display: flex; flex-direction: column; padding: 0 10px; }
.vibedesk-now-playing-info { text-align: center; margin-bottom: 25px; }
.vibedesk-now-playing-info h3 { font-size: 1.1rem; margin: 0; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--vd-text-main); }
.vibedesk-now-playing-info p { font-size: 0.8rem; margin: 5px 0 0; color: var(--vd-text-muted); }

.vibedesk-playback-bar { display: flex; align-items: center; gap: 10px; margin-bottom: 30px; }
.vibedesk-playback-bar span { font-size: 0.75rem; color: var(--vd-text-muted); font-variant-numeric: tabular-nums; width: 35px; }
.vibedesk-progress-track { flex: 1; height: 6px; background: var(--vd-border); border-radius: 3px; overflow: hidden; }
.vibedesk-progress-fill { width: 0%; height: 100%; background: var(--vd-primary); box-shadow: 0 0 10px var(--vd-primary); transition: width 0.3s linear; }

.vibedesk-main-controls { display: flex; justify-content: center; align-items: center; gap: 30px; margin-bottom: 25px; }
.vibedesk-ipod-btn { background: transparent !important; border: none; color: var(--vd-text-main); font-size: 1.5rem; cursor: pointer; opacity: 0.8; transition: transform 0.2s, opacity 0.2s; padding: 0; outline: none !important; box-shadow: none !important; }
.vibedesk-ipod-btn:hover, .vibedesk-ipod-btn:focus, .vibedesk-ipod-btn:active { opacity: 1; transform: scale(1.1); background: transparent !important; outline: none !important; box-shadow: none !important; }
.vibedesk-play-btn { font-size: 2.2rem; }

.vibedesk-vote-skip-container { display: flex; justify-content: center; margin-top: auto; padding-bottom: 20px; }

/* Hard reset: prevent Elementor global button styles from bleeding onto iPod controls */
.vibedesk-ipod-btn {
	all: unset !important;
	background: transparent !important;
	border: none !important;
	color: var(--vd-text-main) !important;
	font-size: 1.5rem !important;
	cursor: pointer !important;
	opacity: 0.8;
	transition: transform 0.2s ease, opacity 0.2s ease !important;
	padding: 0 !important;
	line-height: 1 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	outline: none !important;
	transform: none !important;
}
.vibedesk-ipod-btn:hover,
.vibedesk-ipod-btn:focus,
.vibedesk-ipod-btn:active {
	opacity: 1 !important;
	transform: scale(1.1) !important;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	outline: none !important;
}
.vibedesk-play-btn { font-size: 2.2rem !important; }

/* Hard reset for vote-skip and utility outline buttons */
.vibedesk-btn-outline,
.vibedesk-btn-outline:hover,
.vibedesk-btn-outline:focus {
	all: unset !important;
	background: transparent !important;
	border: 1px solid var(--vd-btn-outline) !important;
	color: var(--vd-text-main) !important;
	cursor: pointer !important;
	border-radius: 6px !important;
	padding: 5px 15px !important;
	font-size: 0.85rem !important;
	font-family: inherit !important;
	line-height: 1.4 !important;
	box-shadow: none !important;
}

/* Sidebar */
.vibedesk-sidebar-container { padding: 0 var(--vd-sidebar-padding, 0) var(--vd-sidebar-padding, 25px); }
.vibedesk-surface { background: var(--vd-bg-surface); border: 1px solid var(--vd-border); color: var(--vd-text-main); }
.vibedesk-queue-list { display: flex; flex-direction: column; gap: 10px; max-height: 400px; overflow-y: auto; padding-right: 5px; }
.vibedesk-queue-list::-webkit-scrollbar { width: 6px; }
.vibedesk-queue-list::-webkit-scrollbar-track { background: transparent; }
.vibedesk-queue-list::-webkit-scrollbar-thumb { background: var(--vd-border); border-radius: 3px; }

.vibedesk-queue-item { 
	display: flex; 
	align-items: center; 
	gap: 12px; 
	padding: 10px; 
	border-radius: 12px; 
	border: 1px solid transparent !important; 
	transition: all 0.2s ease; 
	background: #111111 !important; 
	color: var(--vd-text-main); 
}
.vibedesk-queue-item.playing { 
	border-color: var(--vd-primary) !important; 
	background: #111111 !important; 
}
.vibedesk-queue-thumb { width: 80px; height: 45px; border-radius: 6px; background-size: cover; background-position: center; flex-shrink: 0; }
.vibedesk-queue-info { flex: 1; min-width: 0; }
.vibedesk-queue-info h4 { margin: 0; font-size: 0.85rem; font-weight: 700 !important; display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.vibedesk-queue-info span { font-size: 0.7rem; color: var(--vd-text-muted); }

.vibedesk-btn-delete { width: 32px; height: 32px; border-radius: 50% !important; border: none !important; background: #1A1A1A !important; color: var(--vd-text-muted); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.2s; }
.vibedesk-theme-dark .vibedesk-btn-delete { background: #1A1A1A !important; }
.vibedesk-btn-delete:hover { background: rgba(239, 68, 68, 0.1) !important; color: #ef4444 !important; transform: scale(1.1); }

.vibedesk-playing-status { width: 32px; height: 32px; background: #1A1A1A !important; color: var(--vd-primary); border-radius: 50% !important; display: flex; align-items: center; justify-content: center; font-size: 0.8rem; border: none !important; }
.vibedesk-bars { display: flex; gap: 3px; align-items: flex-end; height: 14px; }
.vibedesk-bar { width: 3px; background: var(--vd-primary); border-radius: 3px; animation: vibedesk-bounce 0.8s ease-in-out infinite alternate; }
.vibedesk-bar:nth-child(1) { height: 100%; animation-delay: 0s; }
.vibedesk-bar:nth-child(2) { height: 50%; animation-delay: 0.2s; }
.vibedesk-bar:nth-child(3) { height: 75%; animation-delay: 0.4s; }

@keyframes vibedesk-bounce { 0% { height: 2px; } 100% { height: 14px; } }

/* Large Bars for Player Overlay */
.vibedesk-bars-lg { display: flex; gap: 6px; align-items: flex-end; height: 50px; justify-content: center; margin-bottom: 25px; }
.vibedesk-bar-lg { width: 6px; background: var(--vd-primary); border-radius: 6px; animation: vibedesk-bounce-lg 0.8s ease-in-out infinite alternate; }
.vibedesk-bar-lg:nth-child(1) { height: 100%; animation-delay: 0s; }
.vibedesk-bar-lg:nth-child(2) { height: 60%; animation-delay: 0.15s; }
.vibedesk-bar-lg:nth-child(3) { height: 85%; animation-delay: 0.3s; }
.vibedesk-bar-lg:nth-child(4) { height: 45%; animation-delay: 0.45s; }
.vibedesk-bar-lg:nth-child(5) { height: 75%; animation-delay: 0.6s; }

@keyframes vibedesk-bounce-lg { 
	0% { height: 10px; opacity: 0.4; } 
	100% { height: 50px; opacity: 1; } 
}

.vibedesk-live-indicator { width: 12px; height: 12px; border-radius: 50%; background: var(--vd-text-muted); transition: all 0.3s ease; flex-shrink: 0; box-shadow: inset 0 0 5px rgba(0,0,0,0.1); }
.vibedesk-live-indicator.is-live { background: #10b981 !important; box-shadow: 0 0 10px rgba(16, 185, 129, 0.6), inset 0 0 5px rgba(255,255,255,0.2) !important; }

/* ==================================================================
   HUB WIDGET STYLES (Login, Register & Channels List)
   ================================================================== */
.vibedesk-hub-wrapper {
	width: 100%;
	max-width: 100%;
	margin: 0 auto;
	color: var(--vd-text-main);
}

.vibedesk-auth-container {
	display: grid;
	grid-template-columns: 1fr 1.2fr;
	gap: 0;
	border-radius: 16px;
	overflow: hidden;
	border: 1px solid var(--vd-border);
}
@media (max-width: 768px) {
	.vibedesk-auth-container { grid-template-columns: 1fr; }
	.vibedesk-auth-brand { 
		padding: 25px 25px; 
		text-align: left;
		min-height: auto;
	}
	.vibedesk-auth-brand-content {
		display: flex;
		flex-direction: column;
	}
	.vibedesk-auth-brand h2 { font-size: 1.4rem; }
	.vibedesk-auth-brand p { font-size: 13px; line-height: 1.45; }
	.vibedesk-auth-brand-icon { margin: 0; }
	.vibedesk-auth-features { 
		flex-direction: column; 
		flex-wrap: nowrap; 
		justify-content: flex-start;
		font-size: 13px;
		gap: 8px;
	}
	.vibedesk-auth-forms { 
		padding: 30px 20px; 
		width: 100%;
		box-sizing: border-box !important;
	}
}

/* Left brand panel */
.vibedesk-auth-brand {
	background: var(--vd-primary, #3b82f6);
	padding: 50px 35px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 20px;
	position: relative;
	overflow: hidden;
}
.vibedesk-auth-brand-overlay {
	pointer-events: none;
}
.vibedesk-auth-brand-content {
	position: relative;
	z-index: 2;
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 20px;
}
.vibedesk-auth-brand-icon {
	width: 64px; height: 64px;
	border-radius: 16px;
	background: rgba(255,255,255,0.15);
	display: flex; align-items: center; justify-content: center;
	font-size: 1.8rem;
	color: #fff;
}
.vibedesk-auth-brand h2 {
	margin: 0;
	color: #fff;
	font-size: 1.4rem;
	font-weight: 800;
	letter-spacing: -0.5px;
}
.vibedesk-auth-brand p {
	color: rgba(255,255,255,0.8);
	font-size: 13px;
	line-height: 1.45;
	margin: 0;
}
.vibedesk-auth-features { display: flex; flex-direction: column; gap: 12px; margin-top: 10px; }
.vibedesk-auth-feat {
	display: flex; align-items: center; gap: 10px;
	color: #ffffff;
	font-size: 14px;
	background: rgba(0, 0, 0, 0.4);
	backdrop-filter: blur(6px);
	border: 1px solid rgba(255, 255, 255, 0.1);
	padding: 10px 14px;
	border-radius: 8px;
}
.vibedesk-auth-feat i { font-size: 0.95rem; }

/* Right forms panel */
.vibedesk-auth-forms {
	background: var(--vd-bg-surface);
	padding: 40px 35px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 20px;
}

/* Tabs */
.vibedesk-auth-tabs {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 6px;
	background: rgba(var(--vd-primary-rgb, 59 130 246) / 0.1);
	padding: 5px;
	border-radius: 50px;
	margin-bottom: 25px;
	width: 100%;
	box-sizing: border-box !important;
}
.vibedesk-auth-tab {
	flex: 1 1 0;
	min-width: 0;
	text-align: center;
	padding: 12px 5px !important;
	border-radius: 50px !important;
	cursor: pointer !important;
	font-size: 0.85rem;
	font-weight: 600;
	color: #ffffff !important;
	transition: all 0.2s ease !important;
	border: none !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	background: transparent !important;
	margin: 0 !important;
}
.vibedesk-auth-tab:hover {
	opacity: 0.9;
}
.vibedesk-auth-tab.active {
	background: var(--vd-primary) !important;
	color: #ffffff !important;
	box-shadow: none !important;
}

/* Panels */
.vibedesk-auth-panel { display: none; }
.vibedesk-auth-panel.active { display: block; }
.vibedesk-auth-panel form {
	display: flex;
	flex-direction: column;
	gap: 16px;
	transition: opacity 0.3s ease;
}

/* Auth Success Overlay */
.vibedesk-auth-container { position: relative; transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275), filter 0.4s ease; }
.vibedesk-auth-container.is-success { transform: scale(0.98); filter: blur(2px) grayscale(0.2); pointer-events: none; }

.vibedesk-auth-success-overlay {
	position: absolute;
	inset: 0;
	background: rgba(15, 15, 15, 0.85); /* Fallback dark */
	backdrop-filter: blur(8px);
	display: none;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 15px;
	z-index: 100;
	opacity: 0;
	transition: all 0.4s ease;
	border-radius: 16px;
}
.vibedesk-theme-light .vibedesk-auth-success-overlay { background: rgba(255, 255, 255, 0.85); }
.vibedesk-auth-success-overlay.active { display: flex !important; opacity: 1; }

.vibedesk-success-icon {
	width: 60px; height: 60px;
	background: var(--vd-primary, #3b82f6);
	color: #fff;
	border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	font-size: 1.8rem;
	box-shadow: 0 0 20px rgba(59, 130, 246, 0.4);
	animation: vibedesk-pop 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
}
.vibedesk-auth-success-overlay h3 { margin: 0; color: var(--vd-text-main); font-size: 1.4rem; font-weight: 700; }

@keyframes vibedesk-pop {
	0% { transform: scale(0.5); opacity: 0; }
	100% { transform: scale(1); opacity: 1; }
}

/* Field groups */
.vibedesk-field-group { display: flex; flex-direction: column; gap: 10px; }
.vibedesk-field-group label { font-size: 0.9rem; font-weight: 500; color: var(--vd-text-muted); letter-spacing: 0.2px; }

/* Generic Input */
.vibedesk-input {
	padding: 12px 14px;
	border-radius: 8px;
	border: 1px solid var(--vd-border);
	background: var(--vd-input-bg) !important;
	color: var(--vd-text-main) !important;
	font-family: inherit;
	width: 100%;
	box-sizing: border-box;
	font-size: 0.95rem;
}
.vibedesk-input:focus {
	border-color: var(--vd-primary);
	outline: none;
}

/* Auth forms general inputs */
.vibedesk-auth-forms input[type="text"],
.vibedesk-auth-forms input[type="email"],
.vibedesk-auth-forms input[type="password"] {
	padding: 12px;
	border-radius: 8px;
	border: 1px solid var(--vd-border);
	background: var(--vd-input-bg);
	color: var(--vd-text-main);
	font-family: inherit;
	width: 100%;
	box-sizing: border-box;
}

/* Modals */
.vibedesk-modal-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0,0,0,0.7);
	backdrop-filter: blur(8px);
	z-index: 9999;
	display: none;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transition: all 0.3s ease;
	padding: 20px;
}
.vibedesk-modal-overlay.active {
	display: flex !important;
	opacity: 1;
}
.vibedesk-modal-content {
	background: var(--vd-bg-surface);
	border: 1px solid var(--vd-border);
	color: var(--vd-text-main);
	width: 100%;
	max-width: 450px;
	padding: 40px 30px;
	border-radius: 20px;
	position: relative;
	box-shadow: 0 20px 40px rgba(0,0,0,0.5);
	animation: vd-modal-in 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
@keyframes vd-modal-in {
	from { transform: scale(0.85); opacity: 0; }
	to { transform: scale(1); opacity: 1; }
}
.vibedesk-modal-content form {
	display: flex;
	flex-direction: column;
	gap: 20px;
}
.vibedesk-modal-content input[type="text"],
.vibedesk-modal-content input[type="password"] {
	padding: 13px 16px;
	border-radius: 12px;
	border: 1px solid var(--vd-border);
	background: var(--vd-input-bg) !important;
	color: var(--vd-text-main) !important;
	font-family: inherit;
	width: 100%;
	box-sizing: border-box;
	transition: all 0.2s ease;
}
.vibedesk-modal-content input:focus {
	border-color: var(--vd-primary);
	background: color-mix(in srgb, var(--vd-input-bg) 95%, #fff) !important;
	outline: none;
}
/* Prevent yellow autofill */
.vibedesk-modal-content input:-webkit-autofill,
.vibedesk-modal-content input:-webkit-autofill:hover, 
.vibedesk-modal-content input:-webkit-autofill:focus {
	-webkit-text-fill-color: var(--vd-text-main) !important;
	-webkit-box-shadow: 0 0 0px 1000px var(--vd-input-bg) inset !important;
	transition: background-color 5000s ease-in-out 0s;
}
.vibedesk-modal-close {
	position: absolute;
	top: 20px;
	right: 20px;
	background: transparent;
	border: none;
	color: var(--vd-text-muted);
	font-size: 1.2rem;
	cursor: pointer;
	transition: color 0.2s;
}
.vibedesk-modal-close:hover { color: var(--vd-text-main); }

.vibedesk-modal-header {
	text-align: center;
	margin-bottom: 25px;
}
.vibedesk-modal-header i {
	font-size: 2.5rem;
	color: var(--vd-primary);
	margin-bottom: 10px;
}
.vibedesk-modal-header h2 {
	margin: 0;
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--vd-text-main);
}
.vibedesk-checkbox-label {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 0.95rem;
	color: var(--vd-text-main);
	cursor: pointer;
	margin-top: 5px;
}
.vibedesk-checkbox-label input[type="checkbox"] {
	width: 18px !important;
	height: 18px !important;
	cursor: pointer;
	accent-color: var(--vd-primary);
}
/* === Primary button — inherits Elementor global button class === */
/* We add .elementor-button to the element in PHP so Elementor global styles cascade naturally.
   This rule only provides a fallback for when Elementor globals aren't available. */
.vibedesk-btn-primary {
	background-color: var(--vd-primary, #3b82f6);
	color: #ffffff;
	padding: 12px 20px;
	border: none;
	border-radius: 8px;
	cursor: pointer;
	font-weight: bold;
	text-decoration: none !important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: opacity 0.2s ease;
}
.vibedesk-btn-primary:hover { opacity: 0.88; }

/* Secondary — keep its own green */
.vibedesk-btn-secondary {
	background: #10b981;
	color: #ffffff !important;
	padding: 12px 20px;
	border: none;
	border-radius: 8px;
	cursor: pointer;
	font-weight: bold;
	transition: opacity 0.2s ease;
}
.vibedesk-btn-secondary:hover { opacity: 0.88; }

/* Logged in view */
.vibedesk-channels-hub {
	display: flex;
	flex-direction: column;
	gap: 28px;
}

/* Header */
.vibedesk-hub-header {
	display: flex;
	align-items: center;
	gap: 16px;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--vd-border);
}
.vibedesk-hub-avatar {
	width: 52px; height: 52px;
	border-radius: 50%;
	background: var(--vd-primary, #3b82f6);
	color: #fff;
	font-size: 1.4rem;
	font-weight: 800;
	display: flex; align-items: center; justify-content: center;
	flex-shrink: 0;
}
.vibedesk-hub-header-text h2 {
	margin: 0 0 4px 0;
	font-size: 1.6rem;
	color: var(--vd-text-main);
}
.vibedesk-hub-header-text h2 strong { font-weight: 800; }
.vibedesk-hub-header-text p { margin: 0; color: var(--vd-text-muted); font-size: 0.9rem; }

.vibedesk-logout-btn {
	margin-left: auto;
	background: rgba(239, 68, 68, 0.1);
	color: #ef4444;
	padding: 8px 16px;
	border-radius: 8px;
	text-decoration: none !important;
	font-size: 0.9rem;
	font-weight: bold;
	display: flex;
	align-items: center;
	gap: 8px;
}

@media (max-width: 768px) {
	.vibedesk-hub-header {
		flex-direction: column;
		text-align: center;
		padding: 24px 20px;
	}
	.vibedesk-logout-btn {
		margin-left: 0;
		margin-top: 15px;
		width: 100%;
		justify-content: center;
	}
	.vibedesk-hub-header-text h2 { font-size: 1.4rem; }
}

/* Action cards */
.vibedesk-hub-actions {
	display: flex;
	gap: 20px;
}
@media (max-width: 768px) {
	.vibedesk-hub-actions { flex-direction: column; }
}
.vibedesk-create-channel-box, .vibedesk-search-box {
	flex: 1;
	background: var(--vd-bg-surface);
	padding: 24px;
	border-radius: 14px;
	border: 1px solid var(--vd-border);
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.vibedesk-hub-card-header {
	display: flex;
	align-items: center;
	gap: 10px;
}
.vibedesk-hub-card-header h3 { margin: 0; font-size: 1rem; font-weight: 700; color: var(--vd-text-main); }
.vibedesk-hub-card-icon {
	width: 34px; height: 34px;
	border-radius: 8px;
	background: rgba(var(--vd-primary-rgb, 59 130 246) / 0.12);
	color: var(--vd-primary);
	display: flex; align-items: center; justify-content: center;
	font-size: 0.95rem;
	flex-shrink: 0;
}
.vibedesk-create-channel-box form {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.vibedesk-hub-checkbox-label {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 0.875rem;
	color: var(--vd-text-muted);
	cursor: pointer;
}

/* Hub inputs (create channel / search) */
.vibedesk-create-channel-box input[type="text"],
.vibedesk-create-channel-box input[type="password"],
.vibedesk-search-box input[type="text"] {
	padding: 11px 14px;
	border-radius: 8px;
	border: 1px solid var(--vd-border);
	background: var(--vd-input-bg);
	color: var(--vd-text-main);
	font-family: inherit;
	width: 100%;
	box-sizing: border-box;
	font-size: 0.9rem;
}


/* Section header */
.vibedesk-hub-section-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 15px;
	margin-bottom: 4px;
}
.vibedesk-hub-section-header-title {
	display: flex;
	align-items: center;
	gap: 10px;
}
.vibedesk-hub-section-header i { color: var(--vd-primary); font-size: 1rem; }
.vibedesk-hub-section-header h3 { margin: 0; font-size: 1.05rem; font-weight: 700; color: var(--vd-text-main); }

@media (max-width: 768px) {
	.vibedesk-hub-section-header {
		flex-direction: column;
		justify-content: center;
		text-align: center;
	}
	.vibedesk-hub-section-header .vibedesk-auth-tabs {
		width: 100% !important;
	}
}

.vibedesk-channels-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 16px;
	margin-top: 12px;
}

.vibedesk-channel-card {
	background: var(--vd-bg-surface);
	border: 1px solid var(--vd-border);
	padding: 20px;
	border-radius: 12px;
	display: flex;
	flex-direction: column;
}
.vibedesk-channel-card h4 { margin: 0 0 5px 0; font-size: 1.2rem; color: var(--vd-text-main); }
.vibedesk-channel-card p { margin: 0 0 20px 0; font-size: 0.8rem; color: var(--vd-text-muted); }

.vibedesk-channel-actions {
	display: flex;
	gap: 10px;
	margin-top: auto;
}
.vibedesk-channel-actions .vibedesk-btn-primary { flex: 1; }

/* Responsive Fixes for Player Widget */
.vibedesk-elementor-wrapper {
	overflow-x: hidden !important;
	width: 100% !important;
	margin: 0 auto !important;
}
.vibedesk-elementor-wrapper * {
	box-sizing: border-box !important;
}

#vibedesk-yt-player, 
#vibedesk-yt-player iframe {
	width: 100% !important;
	max-width: 100% !important;
}

@media (max-width: 768px) {
	.vibedesk-tool-container {
		padding: 0 10px !important;
		margin-top: 15px !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	.vibedesk-mixer-layout {
		gap: 20px !important;
	}

	.vibedesk-ipod-shell {
		width: 100% !important;
		max-width: 320px !important;
		margin: 0 auto !important;
	}

	.vibedesk-now-playing-info h3 {
		font-size: 0.95rem !important;
		white-space: nowrap !important;
		overflow: hidden !important;
		text-overflow: ellipsis !important;
	}
}

/* Share Icons */
.vibedesk-share-icon {
	width: 45px; height: 45px;
	border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	font-size: 1.3rem;
	text-decoration: none !important;
	transition: filter 0.2s, transform 0.2s;
}
.vibedesk-share-icon:hover {
	filter: brightness(1.1);
	transform: scale(1.1);
}

/* Resp. Header Pills */
.vibedesk-pills-container {
	text-align: center;
	margin-bottom: 40px;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 15px;
	flex-wrap: wrap;
}

.vibedesk-pill {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	background: var(--vd-bg-surface);
	padding: 10px 20px;
	border-radius: 50px;
	box-shadow: 0 5px 15px var(--vd-shadow);
	border: 1px solid var(--vd-border);
	transition: all 0.2s ease;
}

.vibedesk-pill-text {
	color: var(--vd-text-muted);
	font-weight: 600;
	font-size: 1.1rem;
	line-height: 1;
}

.vibedesk-pill-label {
	font-weight: 400;
	font-size: 0.95rem;
}

@media (max-width: 768px) {
	.vibedesk-pills-container {
		flex-direction: column;
		gap: 12px;
	}
	.vibedesk-pill {
		width: 100%;
		max-width: none;
		box-sizing: border-box;
	}

/* ReCAPTCHA UI Overrides */
.grecaptcha-badge {
	visibility: hidden !important;
}

.vibedesk-recaptcha-legal {
	font-size: 12px;
	color: var(--vd-text-muted);
	opacity: 0.5;
	text-align: center;
	margin-top: 15px;
	padding: 0 10px;
}

.vibedesk-recaptcha-legal a {
	color: rgba(255, 255, 255, 0.7);
	text-decoration: none;
}

.vibedesk-recaptcha-legal a:hover {
	text-decoration: underline;
}
}
