:root {
	--ld-bg: #0f0f0f;
	--ld-bg-elevated: #181818;
	--ld-bg-soft: #212121;
	--ld-text: #f1f1f1;
	--ld-text-muted: #aaaaaa;
	--ld-red: #ff0000;
	--ld-red-soft: #ff3030;
	--ld-border: #303030;
	--ld-focus: #3ea6ff;
	--ld-heading-color: #f1f1f1;
	--ld-link: #f1f1f1;
	--ld-link-hover: #3ea6ff;
	--ld-header-bg: rgba(15, 15, 15, 0.95);
	--ld-brand-bg: #ffffff;
	--ld-btn-bg: #ff0000;
	--ld-btn-bg-hover: #ff3030;
	--ld-btn-text: #ffffff;
	--ld-btn-text-hover: #ffffff;
	--ld-btn-sec-bg: #212121;
	--ld-btn-sec-bg-h: #2a2a2a;
	--ld-btn-sec-text: #f1f1f1;
	--ld-btn-sec-text-h: #f1f1f1;
	--ld-footer-bg: #181818;
	--ld-footer-text: #f1f1f1;
	--ld-footer-link: #3ea6ff;
	--ld-footer-link-h: #5eb8ff;

	/* Grouped design tokens (overridden by Customizer inline CSS). */
	--ld-border-w-thin: 1px;
	--ld-border-w: 1px;
	--ld-border-w-em: 2px;
	--ld-radius-sm: 8px;
	--ld-radius-md: 10px;
	--ld-radius-lg: 14px;
	--ld-radius-xl: 16px;
	--ld-radius-pill: 999px;
	--ld-focus-ring-w: 2px;
	--ld-focus-ring-offset: 2px;
	--ld-nav-active-bg: #271111;
	--ld-state-success: #7fd58f;
	--ld-state-error: #ff7a7a;
	--ld-disabled-bg: #3a3a3a;
	--ld-disabled-border: #4b4b4b;
	--ld-disabled-text: #9b9b9b;
	--ld-progress-track-bg: #ffffff;
	--ld-muted-chrome: #9aa0a6;
	--ld-overlay-scrim: rgba(0, 0, 0, 0.72);
	--ld-overlay-menu: rgba(0, 0, 0, 0.62);
	--ld-overlay-drawer: rgba(0, 0, 0, 0.62);
	--ld-toast-bg: rgba(20, 20, 20, 0.96);
	--ld-mobile-menu-panel-bg: var(--ld-bg-elevated);
	--ld-lesson-surface-bg: #ffffff;
	--ld-lesson-surface-text: #1b1b1b;
	--ld-lesson-surface-border: #d0d5db;
	--ld-lesson-surface-radius: 12px;
	--ld-auth-card-bg: #000000;
	--ld-auth-logo-bg: #ffffff;
	--ld-auth-input-bg: #121212;
	--ld-mobile-header-pad-y: 10px;
	--ld-mobile-header-pad-x: 12px;
	/* Outline / playlist nested surfaces */
	--ld-playlist-section-bg: #141414;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

body {
	margin: 0;
	background: var(--ld-bg);
	color: var(--ld-text);
	font-family: "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

html,
body {
	height: 100%;
}

body.logged-in.home {
	overflow: hidden;
}

body.logged-in.home .ldtube-app-shell {
	position: fixed;
	inset: 0;
}

body.admin-bar.logged-in.home .ldtube-app-shell {
	top: 32px;
}

@media (max-width: 782px) {
	body.admin-bar.logged-in.home .ldtube-app-shell {
		top: 46px;
	}
}

a {
	color: var(--ld-link);
	text-decoration: none;
}

a:hover,
a:focus-visible {
	color: var(--ld-link-hover);
}

a:focus,
button:focus,
input:focus {
	outline: var(--ld-focus-ring-w) solid var(--ld-focus);
	outline-offset: var(--ld-focus-ring-offset);
}

.ldtube-app-shell {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	min-height: 100dvh;
}

.ldtube-auth-modal {
	position: fixed;
	inset: 0;
	display: grid;
	place-items: center;
	background: radial-gradient(circle at top, #1f1f1f, #080808 60%);
	padding: 20px;
	z-index: 9999;
}

.ldtube-auth-card {
	width: min(460px, 100%);
	background: var(--ld-auth-card-bg);
	border: var(--ld-border-w) solid var(--ld-border);
	border-radius: 90%;
	padding: 5px;
	padding-left: 15px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
}

.ldtube-logo-wrap {
	background: var(--ld-auth-logo-bg);
	padding: 5px;
	border-radius: 90%;
	padding-left: 15px;
	text-align: center;
	margin-bottom: 14px;
}

.ldtube-logo-wrap .custom-logo {
	max-width: 180px;
	height: auto;
}

.ldtube-site-title {
	margin: 0;
	font-size: 1.8rem;
	font-weight: 700;
}

.ldtube-auth-tabs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
	margin-bottom: 16px;
}

.ldtube-auth-heading {
	margin: 0 0 16px;
	font-size: 1.2rem;
	font-weight: 700;
	text-align: center;
}

.ldtube-auth-tab {
	background: var(--ld-bg-soft);
	border: 1px solid var(--ld-border);
	color: var(--ld-text);
	padding: 10px;
	border-radius: 999px;
	cursor: pointer;
	font-weight: 600;
}

.ldtube-auth-tab.is-active {
	background: var(--ld-red);
	border-color: var(--ld-red);
}

.ldtube-auth-notice {
	min-height: 24px;
	margin-bottom: 8px;
	color: var(--ld-text-muted);
	font-size: 0.95rem;
}

.ldtube-auth-notice.is-error {
	color: var(--ld-state-error);
}

.ldtube-auth-notice.is-success {
	color: var(--ld-state-success);
}

.ldtube-auth-form {
	display: none;
}

.ldtube-auth-form.is-active {
	display: block;
}

.ldtube-auth-form label {
	display: block;
	font-size: 0.9rem;
	margin: 10px 0 6px;
	color: var(--ld-text-muted);
}

.ldtube-auth-form input {
	width: 100%;
	border: var(--ld-border-w) solid var(--ld-border);
	border-radius: var(--ld-radius-md);
	padding: 11px 12px;
	background: var(--ld-auth-input-bg);
	color: var(--ld-text);
}

.ldtube-auth-form button {
	width: 100%;
	margin-top: 14px;
	border: var(--ld-border-w) solid var(--ld-red);
	background: var(--ld-red);
	color: var(--ld-btn-text);
	padding: 11px;
	border-radius: var(--ld-radius-pill);
	font-weight: 700;
	cursor: pointer;
}

.ldtube-auth-form button:hover {
	background: var(--ld-red-soft);
}

.ldtube-profile-modal {
	position: fixed;
	inset: 0;
	z-index: 10050;
	display: none;
	padding: 20px;
	box-sizing: border-box;
}

.ldtube-profile-modal.is-open {
	display: block;
}

.ldtube-profile-modal__backdrop {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: var(--ld-overlay-scrim);
	backdrop-filter: blur(2px);
	cursor: pointer;
}

.ldtube-profile-card {
	position: relative;
	z-index: 1;
	margin: 32px auto;
	width: min(920px, 100%);
	max-height: min(88vh, 920px);
	display: flex;
	flex-direction: column;
	background: var(--ld-bg-elevated);
	border: 1px solid var(--ld-border);
	border-radius: 16px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
	overflow: hidden;
}

.ldtube-profile-modal__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 18px;
	border-bottom: 1px solid var(--ld-border);
	flex-shrink: 0;
	background: var(--ld-bg-soft);
}

.ldtube-profile-modal__head h2 {
	margin: 0;
	font-size: 1.15rem;
	font-weight: 700;
}

.ldtube-profile-modal__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 1px solid var(--ld-border);
	border-radius: 10px;
	background: var(--ld-bg-elevated);
	color: var(--ld-text);
	font-size: 1.5rem;
	line-height: 1;
	cursor: pointer;
}

.ldtube-profile-modal__close:hover {
	background: #2a2a2a;
}

.ldtube-profile-modal__body {
	overflow-y: auto;
	overflow-x: hidden;
	padding: 16px 18px;
	flex: 1;
	min-height: 0;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
	scrollbar-color: #555 #171717;
}

.ldtube-profile-modal__body::-webkit-scrollbar {
	width: 6px;
}

.ldtube-profile-modal__body::-webkit-scrollbar-track {
	background: #171717;
	border-radius: 999px;
}

.ldtube-profile-modal__body::-webkit-scrollbar-thumb {
	background: #555;
	border-radius: 999px;
}

.ldtube-profile-modal__body::-webkit-scrollbar-thumb:hover {
	background: #6a6a6a;
}

.ldtube-profile-unavailable {
	margin: 0;
	color: var(--ld-text-muted);
}

.ldtube-site-menu-modal {
	position: fixed;
	inset: 0;
	z-index: 10055;
	display: none;
	padding: 20px;
	box-sizing: border-box;
}

.ldtube-site-menu-modal.is-open {
	display: block;
}

.ldtube-site-menu-modal__backdrop {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: rgba(0, 0, 0, 0.72);
	backdrop-filter: blur(2px);
	cursor: pointer;
}

.ldtube-site-menu-card {
	position: relative;
	z-index: 1;
	margin: 32px auto;
	width: min(640px, 100%);
	max-height: min(80vh, 720px);
	display: flex;
	flex-direction: column;
	background: var(--ld-bg-elevated);
	border: 1px solid var(--ld-border);
	border-radius: 16px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
	overflow: hidden;
}

.ldtube-site-menu-modal__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 18px;
	border-bottom: 1px solid var(--ld-border);
	flex-shrink: 0;
	background: var(--ld-bg-soft);
}

.ldtube-site-menu-modal__head h2 {
	margin: 0;
	font-size: 1.15rem;
	font-weight: 700;
}

.ldtube-site-menu-modal__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 1px solid var(--ld-border);
	border-radius: 10px;
	background: var(--ld-bg-elevated);
	color: var(--ld-text);
	font-size: 1.5rem;
	line-height: 1;
	cursor: pointer;
}

.ldtube-site-menu-modal__close:hover {
	background: #2a2a2a;
}

.ldtube-site-menu-modal__body {
	overflow-y: auto;
	overflow-x: hidden;
	padding: 16px 18px;
	flex: 1;
	min-height: 0;
}

.ldtube-site-menu-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 10px;
}

.ldtube-site-menu-list a,
.ldtube-site-menu-list .ldtube-site-menu-profile-btn {
	display: block;
	border: 1px solid var(--ld-border);
	background: var(--ld-bg-soft);
	border-radius: 10px;
	padding: 10px 12px;
	color: var(--ld-text);
	font-weight: 600;
}

.ldtube-site-menu-list .ldtube-site-menu-profile-btn {
	appearance: none;
	-webkit-appearance: none;
	width: 100%;
	margin: 0;
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.ldtube-site-menu-list .current-menu-item > a,
.ldtube-site-menu-list .current_page_item > a {
	border-color: var(--ld-red);
	background: var(--ld-nav-active-bg);
}

.ldtube-site-menu-empty {
	margin: 0;
	color: var(--ld-text-muted);
}

/* Dashboard desktop: wide “mega menu” style site menu overlay. */
@media (min-width: 981px) {
	.ldtube-site-menu-modal.is-open {
		display: flex;
		align-items: flex-start;
		justify-content: center;
		padding: 28px 32px 48px;
		box-sizing: border-box;
	}

	.ldtube-site-menu-modal .ldtube-site-menu-card {
		width: min(1040px, calc(100vw - 64px));
		max-width: 100%;
		max-height: min(78vh, 760px);
		margin: 0 auto;
		border-radius: 20px;
		box-shadow:
			0 0 0 1px rgba(255, 255, 255, 0.06) inset,
			0 28px 90px rgba(0, 0, 0, 0.58);
	}

	.ldtube-site-menu-modal__head {
		padding: 18px 22px;
	}

	.ldtube-site-menu-modal__head h2 {
		font-size: 1.28rem;
		letter-spacing: -0.02em;
	}

	.ldtube-site-menu-modal__body {
		padding: 22px 24px 28px;
	}

	.ldtube-site-menu-modal .ldtube-site-menu-list {
		grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
		gap: 14px 16px;
	}

	.ldtube-site-menu-modal .ldtube-site-menu-list a,
	.ldtube-site-menu-modal .ldtube-site-menu-list .ldtube-site-menu-profile-btn {
		padding: 16px 18px;
		font-size: 1.02rem;
		line-height: 1.35;
		min-height: 54px;
		display: flex;
		align-items: center;
	}
}

.ldtube-header {
	position: sticky;
	top: 0;
	z-index: 10;
	display: grid;
	grid-template-columns: 200px 1fr auto;
	align-items: center;
	gap: 16px;
	padding: 12px 20px;
	background: var(--ld-header-bg);
	border-bottom: 1px solid var(--ld-border);
}

.ldtube-app-shell > .ldtube-header {
	flex-shrink: 0;
}

/* Course player header: logo + user row; Course Controls centered between name and menu trigger. */
.ldtube-app-shell > .ldtube-header:not(.ldtube-site-header) {
	grid-template-columns: auto 1fr;
}

.ldtube-app-shell > .ldtube-header:not(.ldtube-site-header) .ldtube-user-meta {
	display: grid;
	grid-template-columns: max-content 1fr auto;
	align-items: center;
	gap: 10px;
	width: 100%;
	min-width: 0;
}

.ldtube-app-shell > .ldtube-header:not(.ldtube-site-header) .ldtube-user-meta__label {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.ldtube-app-shell > .ldtube-header:not(.ldtube-site-header) .ldtube-user-meta__toolbar {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	flex-wrap: wrap;
	min-width: 0;
	grid-column: 2;
}

.ldtube-app-shell > .ldtube-header:not(.ldtube-site-header) .ldtube-user-meta__toolbar .ldtube-utility-link-btn {
	max-width: 100%;
}

.ldtube-app-shell > .ldtube-header:not(.ldtube-site-header) .ldtube-user-meta__end {
	display: flex;
	align-items: center;
	gap: 10px;
	justify-self: end;
}

.ldtube-brand {
	background: var(--ld-brand-bg);
	padding: 5px;
	border-radius: 90%;
	padding-left: 15px;
}

/* Exclude site-icon link: it also uses .custom-logo-link and must stay hidden on desktop. */
.ldtube-brand .custom-logo-link:not(.ldtube-brand__site-icon-link) {
	display: inline-flex;
	align-items: center;
	line-height: 0;
	text-decoration: none;
}

.ldtube-brand .custom-logo {
	max-height: 40px;
	width: auto;
	height: auto;
	display: block;
}

/* Mobile header: Site Icon (Customizer) instead of Custom Logo when both exist. */
.ldtube-brand__site-icon-link {
	display: none;
}

@media (max-width: 980px) {
	/* Square chip: width = logo max height (matches .custom-logo max-height). */
	.ldtube-brand:has( .custom-logo-link ) {
		width: 40px;
		height: 40px;
		min-width: 40px;
		min-height: 40px;
		padding: 0;
		border-radius: 10px;
		box-sizing: border-box;
		display: flex;
		align-items: center;
		justify-content: center;
		overflow: hidden;
	}

	.ldtube-brand:has( .custom-logo-link ) .custom-logo-link {
		max-width: 100%;
		max-height: 100%;
	}

	.ldtube-brand:has( .custom-logo-link ) .custom-logo {
		max-height: 40px;
		max-width: 40px;
		width: auto;
		height: auto;
		object-fit: contain;
	}

	.ldtube-brand:has( .ldtube-brand__site-icon-link ) .ldtube-brand__desktop-logo {
		display: none;
	}

	.ldtube-brand .ldtube-brand__site-icon-link {
		display: inline-flex;
		align-items: center;
		line-height: 0;
		text-decoration: none;
	}
}

.ldtube-site-title-link {
	color: inherit;
	text-decoration: none;
	font-weight: 600;
}

.ldtube-site-title-link:hover,
.ldtube-site-title-link:focus-visible {
	text-decoration: underline;
}

.ldtube-courses-nav {
	display: flex;
	gap: 8px;
	overflow-x: auto;
	padding-bottom: 2px;
	scrollbar-width: thin;
	scrollbar-color: #4a4a4a var(--ld-bg);
}

/* Horizontal scrollbar: dark track (not OS white); thumb + end arrows where WebKit renders them */
.ldtube-courses-nav::-webkit-scrollbar {
	height: 12px;
}

.ldtube-courses-nav::-webkit-scrollbar-track,
.ldtube-courses-nav::-webkit-scrollbar-track-piece {
	background: var(--ld-bg);
}

.ldtube-courses-nav::-webkit-scrollbar-thumb {
	background: #4a4a4a;
	border-radius: 6px;
	border: 2px solid var(--ld-bg);
}

.ldtube-courses-nav::-webkit-scrollbar-thumb:hover {
	background: #5a5a5a;
}

.ldtube-courses-nav::-webkit-scrollbar-corner {
	background: var(--ld-bg);
}

.ldtube-courses-nav::-webkit-scrollbar-button {
	display: block;
	width: 14px;
	height: 12px;
	background-color: var(--ld-bg-soft);
	box-shadow: inset 0 0 0 1px var(--ld-border);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 10px 10px;
}

.ldtube-courses-nav::-webkit-scrollbar-button:hover {
	background-color: #2a2a2a;
}

.ldtube-courses-nav::-webkit-scrollbar-button:horizontal:start:decrement {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23aaaaaa' d='M15.41 16.59 10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z'/%3E%3C/svg%3E");
}

.ldtube-courses-nav::-webkit-scrollbar-button:horizontal:end:increment {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23aaaaaa' d='M8.59 16.59 13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z'/%3E%3C/svg%3E");
}

.ldtube-courses-nav a,
.ldtube-empty-courses {
	white-space: nowrap;
	border: 1px solid var(--ld-border);
	background: var(--ld-bg-soft);
	padding: 8px 12px;
	border-radius: 999px;
	font-size: 0.92rem;
}

.ldtube-courses-nav a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.ldtube-course-complete-icon {
	display: inline-flex;
	align-items: center;
	color: #22c55e;
	flex: 0 0 auto;
}

.ldtube-course-complete-icon svg {
	width: 14px;
	height: 14px;
	fill: currentColor;
}

.ldtube-courses-nav a.is-active {
	background: var(--ld-red);
	border-color: var(--ld-red);
}

.ldtube-primary-nav .menu {
	display: flex;
	gap: 8px;
	align-items: center;
	list-style: none;
	padding: 0;
	margin: 0;
}

.ldtube-primary-nav .menu-item {
	margin: 0;
}

.ldtube-site-shell {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	min-height: 100dvh;
}

.ldtube-archive-header {
	margin-bottom: 16px;
}

.ldtube-archive-header .ldtube-archive-title {
	margin: 0 0 8px;
	font-size: 1.35rem;
}

.ldtube-archive-description {
	margin: 0;
	color: var(--ld-text-muted);
	font-size: 0.95rem;
	line-height: 1.5;
}

.ldtube-courses-archive-main {
	flex: 1;
}

.ldtube-courses-archive {
	width: 100%;
	margin-inline: auto;
}

.ldtube-courses-archive-inner {
	font-size: 1rem;
	line-height: 1.65;
}

.ldtube-courses-archive-inner > *:first-child {
	margin-top: 0;
}

.ldtube-courses-archive-inner > *:last-child {
	margin-bottom: 0;
}

.ldtube-archive-card {
	margin-bottom: 16px;
}

.ldtube-archive-card-title {
	margin: 0 0 10px;
	font-size: 1.15rem;
}

.ldtube-archive-card-title a {
	color: var(--ld-text);
}

.ldtube-read-more {
	margin: 12px 0 0;
}

.ldtube-read-more a {
	color: #7ab8ff;
}

.ldtube-single-header {
	margin-bottom: 12px;
}

.ldtube-single-header h1 {
	margin: 0;
	font-size: 1.35rem;
}

.ldtube-single-meta {
	margin: 8px 0 0;
	color: var(--ld-text-muted);
	font-size: 0.9rem;
}

.ldtube-single-meta-sep {
	margin: 0 6px;
}

.ldtube-pagination {
	margin: 20px 0 40px;
}

.ldtube-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: center;
	align-items: center;
}

.ldtube-pagination a,
.ldtube-pagination span {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--ld-border);
	background: var(--ld-bg-soft);
	padding: 8px 12px;
	border-radius: 8px;
	font-size: 0.9rem;
}

.ldtube-pagination span.current {
	border-color: var(--ld-red);
	background: var(--ld-nav-active-bg);
}

main#main-content .post-navigation {
	margin: 16px 0 24px;
	display: flex;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
}

main#main-content .post-navigation a {
	border: 1px solid var(--ld-border);
	background: var(--ld-bg-soft);
	padding: 8px 12px;
	border-radius: 8px;
	font-size: 0.9rem;
	max-width: 48%;
}

.ldtube-user-meta {
	display: flex;
	align-items: center;
	gap: 10px;
}

.ldtube-user-meta a {
	background: var(--ld-bg-soft);
	border: 1px solid var(--ld-border);
	padding: 8px 10px;
	border-radius: 999px;
}

.ldtube-mobile-menu-trigger,
.ldtube-mobile-main-menu {
	display: none;
}

body.ldtube-mobile-menu-open {
	overflow: hidden;
}

.ldtube-mobile-menu-trigger {
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 1px solid var(--ld-border);
	border-radius: 10px;
	background: var(--ld-bg-soft);
	color: var(--ld-text);
	font-size: 1.35rem;
	line-height: 1;
	cursor: pointer;
}

.ldtube-mobile-main-menu {
	position: fixed;
	inset: 0;
	z-index: 10090;
}

/* Sit below the WP admin bar when logged-in staff have it (fixed bar covers inset:0 drawers otherwise). */
body.admin-bar .ldtube-mobile-main-menu {
	inset: auto;
	top: var(--wp-admin--admin-bar--height, 32px);
	left: 0;
	right: 0;
	bottom: 0;
}

@media screen and (max-width: 782px) {
	body.admin-bar .ldtube-mobile-main-menu {
		top: var(--wp-admin--admin-bar--height, 46px);
	}
}

.ldtube-mobile-main-menu.is-open {
	display: block;
}

.ldtube-mobile-main-menu__backdrop {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	background: var(--ld-overlay-menu);
}

.ldtube-mobile-main-menu__panel {
	position: absolute;
	top: 0;
	right: 0;
	width: min(88vw, 360px);
	height: 100%;
	background: var(--ld-mobile-menu-panel-bg);
	border-left: var(--ld-border-w) solid var(--ld-border);
	display: flex;
	flex-direction: column;
	transform: translateX(100%);
	transition: transform 220ms ease;
}

.ldtube-mobile-main-menu.is-open .ldtube-mobile-main-menu__panel {
	transform: translateX(0);
}

.ldtube-mobile-main-menu__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	flex: 0 0 auto;
	position: sticky;
	top: 0;
	z-index: 3;
	padding: 14px 16px;
	border-bottom: 1px solid var(--ld-border);
	background: var(--ld-mobile-menu-panel-bg);
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.35);
}

.ldtube-mobile-main-menu__head h2 {
	margin: 0;
	font-size: 1.1rem;
	font-weight: 700;
	flex: 1 1 auto;
	min-width: 0;
}

.ldtube-mobile-main-menu__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 2px solid var(--ld-border);
	border-radius: 10px;
	background: var(--ld-bg-soft);
	color: var(--ld-text);
	font: inherit;
	line-height: 1;
	cursor: pointer;
}

.ldtube-mobile-main-menu__close-x {
	display: block;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1;
}

.ldtube-mobile-main-menu__body {
	flex: 1;
	min-height: 0;
	overflow-y: auto;
	padding: 14px 16px;
}

.ldtube-mobile-main-menu__my-courses {
	padding-bottom: 14px;
	margin-bottom: 14px;
	border-bottom: 1px solid var(--ld-border);
}

.ldtube-site-menu-my-courses {
	padding-bottom: 14px;
	margin-bottom: 14px;
	border-bottom: 1px solid var(--ld-border);
}

.ldtube-mobile-main-menu__my-courses-title {
	margin: 0 0 10px;
	font-size: 0.95rem;
	font-weight: 700;
	color: var(--ld-heading-color, var(--ld-text));
}

.ldtube-site-menu-my-courses-title {
	margin: 0 0 10px;
	font-size: 0.95rem;
	font-weight: 700;
	color: var(--ld-heading-color, var(--ld-text));
}

.ldtube-mobile-main-menu__courses-nav.ldtube-courses-nav,
.ldtube-site-menu-my-courses-nav.ldtube-courses-nav {
	display: flex;
	flex-direction: column;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: 10px;
	max-width: 100%;
	overflow-x: hidden;
	overflow-y: visible;
	padding-bottom: 0;
}

.ldtube-mobile-main-menu__courses-nav.ldtube-courses-nav::-webkit-scrollbar,
.ldtube-site-menu-my-courses-nav.ldtube-courses-nav::-webkit-scrollbar {
	display: none;
}

.ldtube-mobile-main-menu__courses-nav.ldtube-courses-nav a,
.ldtube-mobile-main-menu__courses-nav.ldtube-courses-nav .ldtube-empty-courses,
.ldtube-site-menu-my-courses-nav.ldtube-courses-nav a,
.ldtube-site-menu-my-courses-nav.ldtube-courses-nav .ldtube-empty-courses {
	display: flex;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	white-space: normal;
	text-align: left;
	justify-content: flex-start;
	align-items: center;
	border-radius: 10px;
}

.ldtube-mobile-main-menu__courses-nav.ldtube-courses-nav a .ldtube-course-complete-icon,
.ldtube-site-menu-my-courses-nav.ldtube-courses-nav a .ldtube-course-complete-icon {
	margin-left: auto;
	flex-shrink: 0;
}

.ldtube-mobile-main-menu-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 10px;
}

.ldtube-mobile-main-menu-list a {
	display: block;
	border: 1px solid var(--ld-border);
	background: var(--ld-bg-soft);
	border-radius: 10px;
	padding: 10px 12px;
	color: var(--ld-text);
	font-weight: 600;
}

.ldtube-mobile-main-menu-list .current-menu-item > a,
.ldtube-mobile-main-menu-list .current_page_item > a {
	border-color: var(--ld-red);
	background: var(--ld-nav-active-bg);
}

.ldtube-mobile-main-menu-empty {
	margin: 0;
	color: var(--ld-text-muted);
}

.ldtube-mobile-main-menu__foot {
	flex: 0 0 auto;
	margin-top: auto;
	border-top: 1px solid var(--ld-border);
	padding: 14px 16px calc(14px + env(safe-area-inset-bottom, 0px));
}

.ldtube-mobile-main-menu__logout {
	display: block;
	width: 100%;
	border: 1px solid var(--ld-border);
	background: var(--ld-bg-soft);
	border-radius: 10px;
	padding: 11px 12px;
	color: var(--ld-text);
	font-weight: 700;
	text-align: center;
}

.ldtube-mobile-main-menu__foot .ldtube-mobile-main-menu__logout[type="button"] {
	font: inherit;
	cursor: pointer;
}

.ldtube-mobile-main-menu__foot > .ldtube-mobile-main-menu__logout:not(.ldtube-mobile-main-menu__logout--footer) {
	margin-bottom: 10px;
}

.ldtube-mobile-main-menu__foot a.ldtube-mobile-main-menu__logout {
	text-decoration: none;
}

.ldtube-mobile-main-menu__logout--footer {
	margin-top: 14px;
}

.ldtube-mobile-main-menu__install {
	display: block;
	width: 100%;
	border: 1px solid var(--ld-border);
	background: var(--ld-bg-soft);
	border-radius: 10px;
	padding: 11px 12px;
	color: var(--ld-text);
	font: inherit;
	font-weight: 700;
	text-align: center;
	cursor: pointer;
	margin-bottom: 10px;
}

.ldtube-mobile-main-menu__install-help {
	margin: -2px 0 10px;
	font-size: 0.82rem;
	line-height: 1.35;
	color: var(--ld-text-muted);
}

.ldtube-mobile-main-menu__install-hint {
	margin: -2px 0 10px;
	font-size: 0.74rem;
	line-height: 1.3;
	color: var(--ld-muted-chrome);
	word-break: break-word;
}

.ldtube-mobile-main-menu__install[hidden],
.ldtube-mobile-main-menu__install-help[hidden],
.ldtube-mobile-main-menu__install-hint[hidden] {
	display: none !important;
}

.ldtube-toast {
	position: fixed;
	left: 50%;
	bottom: calc(16px + env(safe-area-inset-bottom, 0px));
	transform: translateX(-50%) translateY(8px);
	background: var(--ld-toast-bg);
	border: var(--ld-border-w) solid var(--ld-border);
	color: var(--ld-text);
	padding: 9px 12px;
	border-radius: 10px;
	font-size: 0.84rem;
	line-height: 1.3;
	white-space: nowrap;
	opacity: 0;
	pointer-events: none;
	z-index: 11000;
	transition: opacity 180ms ease, transform 180ms ease;
}

.ldtube-toast.is-visible {
	opacity: 1;
	transform: translateX(-50%) translateY(0);
}

.ldtube-main {
	flex: 1 1 0%;
	display: flex;
	flex-direction: column;
	min-height: 0;
	padding: 18px 20px 24px;
}

main#main-content {
	margin-top: -24px;
}

.ldtube-utilities {
	flex: 0 0 auto;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 16px;
	position: relative;
	z-index: 3;
	overflow: hidden;
	max-height: 320px;
	opacity: 1;
	transform: translateY(0);
	margin-bottom: -28px;
	transition: max-height 280ms ease, opacity 220ms ease, transform 280ms ease, margin-bottom 280ms ease;
}

/* When both course nav and progress cards are shown: +25% first column, -25% progress column (full-width utilities only). */
.ldtube-utilities:has(.ldtube-utility-card--progress):not(.ldtube-utilities--embedded) {
	/* Progress text can be long (e.g. 100/100 × 3 + % complete); give it a sensible floor. */
	grid-template-columns: minmax(280px, 1.1fr) minmax(320px, 0.9fr);
}

.ldtube-utilities.ldtube-utilities--embedded {
	display: block;
	margin-top: 0;
	margin-bottom: 14px;
	overflow: hidden;
}

.ldtube-utilities.ldtube-utilities--embedded .ldtube-utility-card {
	width: 100%;
	max-width: none;
	justify-self: stretch;
}

.ldtube-player-stack {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	min-height: 0;
	min-width: 0;
	width: 100%;
}

.ldtube-player-stack .ldtube-player {
	flex: 1 1 auto;
	min-height: 0;
}

.ldtube-utility-card {
	width: min(95vw, 100%);
	justify-self: center;
	box-sizing: border-box;
	background: var(--ld-bg-elevated);
	border: var(--ld-border-w) solid var(--ld-border);
	border-radius: var(--ld-radius-lg);
	padding: 10px 12px;
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
}

.ldtube-utility-card--progress {
	max-width: 100%;
}

.ldtube-utility-card h2 {
	margin: 0;
	font-size: 1.05rem;
	flex: 0 1 auto;
	white-space: nowrap;
}

.ldtube-utility-card p {
	margin: 0;
	color: var(--ld-text-muted);
	flex: 1 1 auto;
	min-width: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.ldtube-utility-links {
	margin-top: 0;
	display: flex;
	gap: 10px;
	flex: 0 0 auto;
	flex-wrap: nowrap;
}

.ldtube-utility-links a,
.ldtube-utility-links .ldtube-utility-link-btn,
.ldtube-header-course-controls.ldtube-utility-link-btn,
.ldtube-desktop-main-menu-trigger.ldtube-utility-link-btn {
	background: var(--ld-bg-soft);
	border: 1px solid var(--ld-border);
	padding: 8px 10px;
	border-radius: 8px;
	font-size: 0.9rem;
}

.ldtube-utility-links .ldtube-utility-link-btn,
.ldtube-header-course-controls.ldtube-utility-link-btn,
.ldtube-desktop-main-menu-trigger.ldtube-utility-link-btn {
	font: inherit;
	color: inherit;
	cursor: pointer;
}

.ldtube-progress {
	margin-top: 0;
	display: flex;
	align-items: flex-start;
	gap: 10px;
	flex: 1 1 auto;
	width: 100%;
	min-width: 0;
}

.ldtube-progress-action {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	margin-top: 5px;
}

.ldtube-progress-action form {
	margin: 0;
}

.ldtube-progress-action-row {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.ldtube-progress-action-mark {
	display: inline-flex;
	align-items: center;
}

.ldtube-progress-nav-btn {
	display: none;
}

.ldtube-progress-action .learndash_mark_complete_button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 8px 12px;
	border-radius: 8px;
	border: 1px solid var(--ld-red);
	background: var(--ld-red);
	color: var(--ld-text);
	font-size: 0.86rem;
	line-height: 1.2;
	cursor: pointer;
}

.ldtube-progress-action .learndash_mark_complete_button[disabled],
.ldtube-progress-action .learndash_mark_complete_button:disabled {
	background: var(--ld-disabled-bg);
	border-color: var(--ld-disabled-border);
	color: var(--ld-disabled-text);
	cursor: not-allowed;
	opacity: 0.85;
	box-shadow: none;
}

/* Progress summary: allow wrap so “complete” and large counts are never clipped. */
.ldtube-progress-meta > span {
	display: block;
	margin-bottom: 0;
	color: var(--ld-text-muted);
	font-size: 0.9rem;
	line-height: 1.45;
	white-space: normal;
	overflow-wrap: break-word;
	word-break: normal;
}

.ldtube-progress-meta {
	display: flex;
	flex-direction: column;
	gap: 6px;
	flex: 1 1 auto;
	min-width: 0;
}

.ldtube-progress-track {
	flex: 0 0 auto;
	margin-left: 0;
	min-width: 100px;
	height: 8px;
	background: var(--ld-progress-track-bg);
	border-radius: var(--ld-radius-pill);
	overflow: hidden;
}

.ldtube-progress-bar {
	height: 100%;
	background: var(--ld-red);
}

.ldtube-playlist-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(280px, 0.8fr);
	grid-template-rows: minmax(0, 1fr);
	gap: 18px;
	flex: 1 1 0%;
	min-height: 0;
	align-content: stretch;
	padding-bottom: var(--ldtube-fallback-height, 44px);
	margin-bottom: -24px;
}

@media (min-width: 981px) {
	.ldtube-playlist-layout {
		padding-top: 20px;
	}
}

.ldtube-main.ldtube-utilities-collapsed .ldtube-utilities {
	max-height: 0;
	opacity: 0;
	transform: translateY(-12px);
	margin-bottom: 0;
	pointer-events: none;
}

.ldtube-main.ldtube-utilities-collapsed .ldtube-playlist-layout {
	padding-top: 0;
}

.ldtube-playlist-layout.ldtube-outline-left {
	grid-template-columns: minmax(280px, 0.8fr) minmax(0, 1.4fr);
}

.ldtube-playlist-layout.ldtube-outline-left .ldtube-player-stack {
	order: 2;
}

.ldtube-playlist-layout.ldtube-outline-left .ldtube-playlist {
	order: 1;
}

.ldtube-player,
.ldtube-playlist,
.ldtube-empty-state {
	background: var(--ld-bg-elevated);
	border: var(--ld-border-w) solid var(--ld-border);
	border-radius: var(--ld-radius-lg);
	padding: 16px;
}

.ldtube-player {
	display: flex;
	flex-direction: column;
	min-height: 0;
	position: relative;
	overflow: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
}

.ldtube-playlist-layout .ldtube-player {
	padding: 0;
}

.ldtube-player h2 {
	margin-top: 0;
}

.ldtube-step-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	color: var(--ld-text-muted);
	font-size: 0.88rem;
	margin-bottom: 12px;
}

.ldtube-step-content {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	width: 100%;
	height: 100%;
	min-height: 0;
	margin-bottom: 0;
	line-height: 1.65;
	background: var(--ld-lesson-surface-bg);
	color: var(--ld-lesson-surface-text);
	border: var(--ld-border-w) solid var(--ld-lesson-surface-border);
	border-radius: var(--ld-lesson-surface-radius);
	overflow: hidden;
}

.ldtube-step-content-inner {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	padding: 14px 16px 20px;
}

.ldtube-step-content-inner .wp-block-embed,
.ldtube-step-content-inner .wp-block-embed__wrapper,
.ldtube-step-content-inner iframe {
	position: relative;
	pointer-events: auto;
}

.ldtube-step-content-inner iframe {
	display: block;
	width: 100%;
	max-width: 100%;
	border: 0;
	touch-action: manipulation;
}

.ldtube-step-content-inner .ld-course-status,
.ldtube-step-content-inner .learndash-shortcode-wrap[class*="learndash-shortcode-wrap-ld_infobar-"] {
	display: none !important;
}

.ldtube-step-frame {
	width: 100%;
	flex: 1;
	min-height: 0;
	border: 0;
	border-radius: 0;
	background: var(--ld-lesson-surface-bg);
	overflow-y: hidden;
}

.ldtube-step-fallback-link {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	margin: 0;
	padding: 5px 12px;
	font-size: 0.9rem;
	background: var(--ld-bg-elevated);
	border-top: 1px solid var(--ld-border);
	z-index: 50;
	min-height: 40px;
}

@media (min-width: 981px) {
	.ldtube-step-fallback-link {
		display: flex;
		align-items: center;
		justify-content: flex-start;
		gap: 10px;
		max-height: 2px;
		min-height: 2px;
		padding: 0 12px;
		overflow: visible;
		background: rgba(15, 15, 15, 0.82);
		transition: max-height 0.24s ease, min-height 0.24s ease, padding-top 0.24s ease, padding-bottom 0.24s ease, background-color 0.24s ease;
	}

	.ldtube-step-fallback-link .ldtube-open-step-link {
		display: inline-flex;
		width: max-content;
		max-width: 65%;
		justify-self: auto;
		position: relative;
		z-index: 1;
		flex: 0 1 auto;
	}

	.ldtube-step-fallback-link .ldtube-step-actions-track {
		position: absolute;
		top: 5%;
		left: 0;
		bottom: auto;
		width: 100%;
		transform: translateY(-50%);
		flex: 0 0 auto;
		pointer-events: auto;
		z-index: 4;
	}

	.ldtube-step-fallback-link .ldtube-step-action-complete,
	.ldtube-step-fallback-link .ldtube-step-action-complete form,
	.ldtube-step-fallback-link .ldtube-step-action-complete .learndash_mark_complete_button {
		position: relative;
		z-index: 6;
		pointer-events: auto;
	}

	.ldtube-step-fallback-link .ldtube-step-actions-grid {
		height: auto;
		width: 100%;
	}

	.ldtube-step-fallback-link::before {
		content: "";
		position: absolute;
		top: -24px;
		left: 50%;
		transform: translateX(-50%);
		width: 72px;
		height: 24px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		border-radius: 10px 10px 0 0;
		background: rgba(0, 0, 0, 0.88);
		color: rgba(255, 255, 255, 0.86);
		font-size: 28px;
		font-weight: 300;
		line-height: 1;
		text-shadow: 0 0 8px rgba(0, 0, 0, 0.45);
		pointer-events: auto;
	}

	.ldtube-step-fallback-link::after {
		content: "";
		position: absolute;
		top: -24px;
		left: 50%;
		transform: translateX(-50%);
		width: 38px;
		height: 24px;
		background-color: rgba(255, 255, 255, 0.88);
		-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 24'%3E%3Cpath d='M4 16 L20 8 L36 16' fill='none' stroke='%23000' stroke-width='2.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
		-webkit-mask-repeat: no-repeat;
		-webkit-mask-position: center;
		-webkit-mask-size: contain;
		mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 24'%3E%3Cpath d='M4 16 L20 8 L36 16' fill='none' stroke='%23000' stroke-width='2.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
		mask-repeat: no-repeat;
		mask-position: center;
		mask-size: contain;
		pointer-events: none;
	}

	.ldtube-step-fallback-link .ldtube-open-step-link,
	.ldtube-step-fallback-link .ldtube-step-actions-track {
		opacity: 0;
		visibility: hidden;
		transform: translateY(6px);
		transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
	}

	.ldtube-step-fallback-link:hover,
	.ldtube-step-fallback-link:focus-within {
		max-height: 52px;
		min-height: 40px;
		padding-top: 6px;
		padding-bottom: 4px;
		background: rgba(15, 15, 15, 0.95);
	}

	.ldtube-step-fallback-link:hover .ldtube-open-step-link,
	.ldtube-step-fallback-link:focus-within .ldtube-open-step-link,
	.ldtube-step-fallback-link:hover .ldtube-step-actions-track,
	.ldtube-step-fallback-link:focus-within .ldtube-step-actions-track {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
	}
}

.ldtube-open-step-link {
	display: inline-flex;
	align-items: center;
	white-space: nowrap;
	position: relative;
	z-index: 2;
}

.ldtube-step-actions-track {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 0;
	pointer-events: none;
}

.ldtube-step-actions-grid {
	height: 100%;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 8px;
	pointer-events: auto;
}

.ldtube-step-action {
	display: flex;
}

.ldtube-step-action-prev {
	justify-content: flex-start;
}

.ldtube-step-action-complete {
	justify-content: center;
}

.ldtube-step-action-next {
	justify-content: flex-end;
}

.ldtube-step-actions-grid a,
.ldtube-step-actions-grid .learndash_mark_complete_button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 8px 12px;
	border-radius: 8px;
	border: 1px solid var(--ld-red);
	background: var(--ld-red);
	color: var(--ld-text);
	text-decoration: none;
	font-size: 0.86rem;
	line-height: 1.2;
}

.ldtube-step-actions-grid .sfwd-mark-complete {
	margin: 0;
}

.ldtube-step-actions-grid .sfwd-mark-incomplete {
	margin: 0;
}

.ldtube-step-actions-grid .learndash_mark_complete_button {
	cursor: pointer;
}

.ldtube-step-actions-grid .learndash_mark_complete_button[disabled],
.ldtube-step-actions-grid .learndash_mark_complete_button:disabled {
	background: var(--ld-disabled-bg);
	border-color: var(--ld-disabled-border);
	color: var(--ld-disabled-text);
	cursor: not-allowed;
	opacity: 0.85;
	box-shadow: none;
}

.ldtube-step-action-placeholder {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 8px 12px;
	border-radius: 8px;
	border: var(--ld-border-w) solid var(--ld-disabled-border);
	background: var(--ld-bg);
	color: var(--ld-disabled-text);
	font-size: 0.86rem;
	line-height: 1.2;
	opacity: 0.9;
	cursor: not-allowed;
	user-select: none;
}

.ldtube-step-fallback-link a {
	color: var(--ld-text);
}

.ldtube-step-fallback-link a:hover,
.ldtube-step-fallback-link a:focus {
	color: #7ab8ff;
}

.ldtube-step-content a {
	color: var(--ld-link);
}

.ldtube-player.ldtube-ld-responsive-video .ld-video {
	position: relative;
	height: 0;
	padding-bottom: 56.25%;
	overflow: hidden;
}

.ldtube-player.ldtube-ld-responsive-video .ld-video iframe,
.ldtube-player.ldtube-ld-responsive-video .ld-video object,
.ldtube-player.ldtube-ld-responsive-video .ld-video embed,
.ldtube-player.ldtube-ld-responsive-video .ld-video video,
.ldtube-player.ldtube-ld-responsive-video .ld-video div.wp-video {
	position: absolute;
	top: 0;
	left: 0;
	width: 100% !important;
	height: 100%;
}

.ldtube-player.ldtube-ld-responsive-video .ld-video[data-video-provider="vooplayer"] iframe {
	position: unset;
}

.ldtube-player.ldtube-ld-responsive-video .ld-video[data-video-provider="vooplayer"] .spotlightr-id iframe {
	position: absolute;
}

.ldtube-step-side-nav {
	display: none;
}

@media (min-width: 981px) {
	.ldtube-step-side-nav {
		position: absolute;
		inset: 0;
		display: block;
		pointer-events: none;
		z-index: 7;
	}

	.ldtube-step-side-nav__prev,
	.ldtube-step-side-nav__next {
		position: absolute;
		top: 0;
		bottom: 0;
		width: 12px;
		overflow: visible;
		pointer-events: auto;
		transition: width 0.28s ease;
	}

	.ldtube-step-side-nav__prev {
		left: 0;
	}

	.ldtube-step-side-nav__next {
		right: 0;
	}

	.ldtube-step-side-nav__prev:hover,
	.ldtube-step-side-nav__prev:focus-within,
	.ldtube-step-side-nav__next:hover,
	.ldtube-step-side-nav__next:focus-within {
		width: 72px;
	}

	.ldtube-step-side-nav__prev a,
	.ldtube-step-side-nav__next a {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		height: 100%;
		background: rgba(12, 12, 12, 0.12);
		backdrop-filter: blur(1.5px);
		color: transparent;
		font-size: 0;
		text-indent: -9999px;
		border: 0;
		border-radius: 0;
		transition: background-color 0.28s ease, box-shadow 0.28s ease;
	}

	.ldtube-step-side-nav__prev:hover a,
	.ldtube-step-side-nav__prev:focus-within a,
	.ldtube-step-side-nav__next:hover a,
	.ldtube-step-side-nav__next:focus-within a {
		background: rgba(12, 12, 12, 0.56);
	}

	.ldtube-step-side-nav__prev a {
		border-radius: 14px 0 0 14px;
		box-shadow: inset -1px 0 0 rgba(255, 255, 255, 0.08);
	}

	.ldtube-step-side-nav__next a {
		border-radius: 0 14px 14px 0;
		box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.08);
	}

	.ldtube-step-side-nav__prev:hover a,
	.ldtube-step-side-nav__prev:focus-within a {
		box-shadow: inset -1px 0 0 rgba(255, 255, 255, 0.22), 0 0 16px rgba(94, 176, 255, 0.2);
	}

	.ldtube-step-side-nav__next:hover a,
	.ldtube-step-side-nav__next:focus-within a {
		box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.22), 0 0 16px rgba(94, 176, 255, 0.2);
	}

	.ldtube-step-side-nav__prev a::before,
	.ldtube-step-side-nav__next a::before {
		content: "";
		width: 38px;
		height: 24px;
		background-color: rgba(255, 255, 255, 0.92);
		-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 24'%3E%3Cpath d='M4 16 L20 8 L36 16' fill='none' stroke='%23000' stroke-width='2.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
		-webkit-mask-repeat: no-repeat;
		-webkit-mask-position: center;
		-webkit-mask-size: contain;
		mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 24'%3E%3Cpath d='M4 16 L20 8 L36 16' fill='none' stroke='%23000' stroke-width='2.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
		mask-repeat: no-repeat;
		mask-position: center;
		mask-size: contain;
		filter: drop-shadow(0 0 10px rgba(0, 0, 0, 0.45));
	}

	.ldtube-step-side-nav__prev a::after,
	.ldtube-step-side-nav__next a::after {
		content: attr(data-hint);
		display: inline-flex;
		align-items: center;
		justify-content: center;
		position: absolute;
		bottom: 34px;
		transform: translateY(8px);
		text-indent: 0;
		padding: 6px 9px;
		min-width: max-content;
		border-radius: 999px;
		background: rgba(12, 12, 12, 0.84);
		border: 1px solid rgba(255, 255, 255, 0.18);
		color: rgba(255, 255, 255, 0.95);
		font-size: 12px;
		font-weight: 600;
		line-height: 1.2;
		letter-spacing: 0.01em;
		text-shadow: none;
		white-space: nowrap;
		opacity: 0;
		transition: opacity 0.24s ease, transform 0.24s ease;
		pointer-events: none;
	}

	.ldtube-step-side-nav__prev a::after {
		left: 14px;
	}

	.ldtube-step-side-nav__next a::after {
		right: 14px;
	}

	.ldtube-step-side-nav__prev:hover a::after,
	.ldtube-step-side-nav__prev:focus-within a::after,
	.ldtube-step-side-nav__next:hover a::after,
	.ldtube-step-side-nav__next:focus-within a::after {
		opacity: 1;
		transform: translateY(0);
	}

	.ldtube-step-side-nav__prev a::before {
		transform: rotate(-90deg);
	}

	.ldtube-step-side-nav__next a::before {
		transform: rotate(90deg);
	}

	.ldtube-step-actions-grid {
		grid-template-columns: auto;
		justify-content: center;
	}

	.ldtube-step-action-prev,
	.ldtube-step-action-next {
		display: none;
	}
}

.ldtube-playlist h3 {
	margin-top: 0;
}

.ldtube-playlist-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
}

.ldtube-playlist-toggle {
	display: none;
	border: 1px solid var(--ld-border);
	background: var(--ld-bg-soft);
	color: var(--ld-text);
	padding: 6px 10px;
	border-radius: 999px;
	font-size: 0.8rem;
	line-height: 1.2;
}

.ldtube-playlist {
	display: flex;
	flex-direction: column;
	min-height: 0;
	overflow: hidden;
}

.ldtube-playlist-sections {
	display: grid;
	gap: 8px;
	overflow: hidden;
	min-height: 0;
	flex: 1;
	align-content: start;
	grid-auto-rows: max-content;
}

.ldtube-playlist-section {
	border: var(--ld-border-w) solid var(--ld-border);
	border-radius: var(--ld-radius-md);
	background: var(--ld-playlist-section-bg);
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.ldtube-playlist-section.is-open {
	border-color: #4a4a4a;
	max-height: var(--ldtube-open-section-max-height, 320px);
	overflow-y: auto;
	scrollbar-width: thin;
	scrollbar-color: #555 #171717;
}

.ldtube-playlist-section.is-open::-webkit-scrollbar {
	width: 6px;
}

.ldtube-playlist-section.is-open::-webkit-scrollbar-track {
	background: #171717;
	border-radius: 999px;
}

.ldtube-playlist-section.is-open::-webkit-scrollbar-thumb {
	background: #555;
	border-radius: 999px;
}

.ldtube-playlist-section.is-open::-webkit-scrollbar-thumb:hover {
	background: #6a6a6a;
}

.ldtube-playlist-section summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 10px;
	cursor: pointer;
	font-weight: 600;
	list-style: none;
	color: #fff;
}

.ldtube-playlist-section summary::-webkit-details-marker {
	display: none;
}

.ldtube-playlist-section-count {
	min-width: 22px;
	text-align: center;
	padding: 2px 6px;
	border-radius: 999px;
	border: 1px solid var(--ld-border);
	font-size: 0.78rem;
	color: var(--ld-text-muted);
}

.ldtube-playlist-section-meta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.ldtube-playlist-section-done-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	color: #6e6e6e;
}

.ldtube-check-icon-svg {
	width: 20px;
	height: 20px;
	display: block;
}

.ldtube-check-icon-svg .ldtube-check-shape {
	fill: currentColor;
	stroke: #0f140f;
	stroke-width: 22;
	stroke-linejoin: round;
	paint-order: stroke fill;
}

.ldtube-playlist-section.is-not-started .ldtube-playlist-section-done-icon {
	color: #6e6e6e;
}

.ldtube-playlist-section.is-partial .ldtube-playlist-section-done-icon {
	color: #f7c85a;
}

.ldtube-playlist-section.is-complete .ldtube-playlist-section-done-icon {
	color: #10df2f;
}

.ldtube-playlist-section > ol {
	border-top: 1px solid var(--ld-border);
	padding: 8px 8px 14px;
}

.ldtube-playlist-section[open] > ol {
	overflow: visible;
}

.ldtube-playlist ol {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 8px;
}

.ldtube-playlist li a {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 10px;
	border-radius: 10px;
	border: 1px solid var(--ld-border);
	background: var(--ld-bg-soft);
	color: #fff;
	text-decoration: none;
}

.ldtube-playlist li a:hover,
.ldtube-playlist li a:focus-visible {
	color: #fff;
}

.ldtube-playlist li.is-locked .ldtube-playlist-title {
	display: block;
	padding: 10px;
	border-radius: 10px;
	border: 1px solid #343434;
	background: #1a1a1a;
	color: rgba(255, 255, 255, 0.5);
	cursor: not-allowed;
}

.ldtube-playlist li.is-active a {
	border-color: var(--ld-red);
	background: var(--ld-nav-active-bg);
}

.ldtube-playlist li.is-active a .ldtube-playlist-title {
	font-weight: 700;
}

.ldtube-playlist-title {
	display: block;
	flex: 1 1 auto;
	min-width: 0;
	font-weight: 400;
	margin-bottom: 0;
	color: #fff;
}

.ldtube-playlist-done-icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	color: #10df2f;
}

.ldtube-playlist-layout.ldtube-outline-left .ldtube-playlist-done-icon {
	margin-left: auto;
	order: 2;
}

.ldtube-playlist-layout.ldtube-outline-right .ldtube-playlist-done-icon {
	order: -1;
	margin-right: 8px;
}

@media (min-width: 981px) {
	main#main-content {
		position: relative;
	}

	main#main-content .post-navigation {
		position: absolute;
		inset: 0;
		margin: 0;
		pointer-events: none;
		z-index: 8;
	}

	main#main-content .post-navigation .nav-links {
		position: relative;
		height: 100%;
	}

	main#main-content .post-navigation .nav-previous,
	main#main-content .post-navigation .nav-next {
		position: absolute;
		top: 0;
		bottom: 0;
		width: 12px;
		overflow: hidden;
		pointer-events: auto;
		transition: width 0.28s ease, background-color 0.28s ease;
	}

	main#main-content .post-navigation .nav-previous {
		left: 0;
	}

	main#main-content .post-navigation .nav-next {
		right: 0;
	}

	main#main-content .post-navigation .nav-previous:hover,
	main#main-content .post-navigation .nav-previous:focus-within,
	main#main-content .post-navigation .nav-next:hover,
	main#main-content .post-navigation .nav-next:focus-within {
		width: 72px;
	}

	main#main-content .post-navigation .nav-previous a,
	main#main-content .post-navigation .nav-next a {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		height: 100%;
		margin: 0;
		padding: 0;
		max-width: none;
		border: 0;
		border-radius: 0;
		background: rgba(12, 12, 12, 0.12);
		backdrop-filter: blur(1.5px);
		color: transparent;
		font-size: 0;
		text-indent: -9999px;
		transition: background-color 0.28s ease, box-shadow 0.28s ease;
	}

	main#main-content .post-navigation .nav-previous:hover a,
	main#main-content .post-navigation .nav-previous:focus-within a,
	main#main-content .post-navigation .nav-next:hover a,
	main#main-content .post-navigation .nav-next:focus-within a {
		background: rgba(12, 12, 12, 0.56);
	}

	main#main-content .post-navigation .nav-previous a {
		border-radius: 14px 0 0 14px;
		box-shadow: inset -1px 0 0 rgba(255, 255, 255, 0.08);
	}

	main#main-content .post-navigation .nav-next a {
		border-radius: 0 14px 14px 0;
		box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.08);
	}

	main#main-content .post-navigation .nav-previous:hover a,
	main#main-content .post-navigation .nav-previous:focus-within a {
		box-shadow: inset -1px 0 0 rgba(255, 255, 255, 0.22), 0 0 16px rgba(94, 176, 255, 0.2);
	}

	main#main-content .post-navigation .nav-next:hover a,
	main#main-content .post-navigation .nav-next:focus-within a {
		box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.22), 0 0 16px rgba(94, 176, 255, 0.2);
	}

	main#main-content .post-navigation .nav-previous a::before,
	main#main-content .post-navigation .nav-next a::before {
		text-indent: 0;
		font-size: 64px;
		line-height: 1;
		font-weight: 500;
		color: rgba(255, 255, 255, 0.92);
		text-shadow: 0 0 10px rgba(0, 0, 0, 0.45);
	}

	main#main-content .post-navigation .nav-previous a::before {
		content: "‹";
	}

	main#main-content .post-navigation .nav-next a::before {
		content: "›";
	}
}

@media (max-width: 980px) {
	.ldtube-header {
		grid-template-columns: 1fr;
		gap: 10px;
		padding: var(--ld-mobile-header-pad-y) var(--ld-mobile-header-pad-x);
	}

	/* Site shell: brand + user row only on small screens (primary links use hamburger). */
	.ldtube-site-header.ldtube-header {
		grid-template-columns: auto 1fr;
		grid-template-rows: auto;
		align-items: center;
		column-gap: 12px;
		row-gap: 0;
	}

	.ldtube-site-header.ldtube-header .ldtube-courses-nav.ldtube-primary-nav {
		display: none !important;
	}

	.ldtube-app-shell > .ldtube-header:not(.ldtube-site-header) {
		grid-template-columns: auto 1fr;
		grid-template-rows: auto;
		align-items: center;
		column-gap: 12px;
		row-gap: 0;
	}

	.ldtube-site-header.ldtube-header .ldtube-brand,
	.ldtube-app-shell > .ldtube-header:not(.ldtube-site-header) .ldtube-brand {
		grid-column: 1;
		grid-row: 1;
		align-self: center;
		justify-self: start;
	}

	.ldtube-site-header.ldtube-header .ldtube-user-meta {
		grid-column: 2;
		grid-row: 1;
		justify-content: space-between;
		align-items: center;
		flex-wrap: nowrap;
		width: 100%;
		min-width: 0;
	}

	.ldtube-app-shell > .ldtube-header:not(.ldtube-site-header) .ldtube-user-meta {
		grid-column: 2;
		grid-row: 1;
		width: 100%;
		min-width: 0;
	}

	/* Log out lives in Main Menu / Dashboard menu on small screens. */
	.ldtube-user-meta .ldtube-user-meta__logout {
		display: none !important;
	}

	.ldtube-utilities {
		grid-template-columns: 1fr;
		max-height: 1200px;
		margin-bottom: 8px;
	}

	.ldtube-utilities:has(.ldtube-utility-card--progress):not(.ldtube-utilities--embedded) {
		grid-template-columns: 1fr;
	}

	.ldtube-utility-card {
		display: flex !important;
		width: 100%;
		justify-self: stretch;
	}

	.ldtube-main.ldtube-utilities-collapsed .ldtube-utilities {
		max-height: 0;
		margin-bottom: 0;
	}

	.ldtube-progress {
		flex-basis: 100%;
		flex-direction: column;
		align-items: center;
		gap: 8px;
	}

	.ldtube-progress-meta {
		order: 1;
		align-items: center;
		text-align: center;
		width: 100%;
	}

	.ldtube-progress-meta > span {
		text-align: center;
	}

	.ldtube-progress-track {
		width: 90vw;
		min-width: 0;
		max-width: 90vw;
		margin-inline: 5vw;
	}

	.ldtube-progress-action {
		order: 2;
		margin-top: 0;
		justify-content: center;
		width: 100%;
	}

	.ldtube-progress-action-row {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 8px;
		width: 100%;
	}

	.ldtube-progress-action-mark,
	.ldtube-progress-action-mark form {
		display: inline-flex;
		align-items: center;
		margin: 0;
	}

	.ldtube-progress-nav-btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		padding: 7px 10px;
		border-radius: 8px;
		border: 1px solid var(--ld-border);
		background: var(--ld-bg-soft);
		color: var(--ld-text);
		font-size: 0.8rem;
		line-height: 1.2;
		text-decoration: none;
		white-space: nowrap;
	}

	.ldtube-playlist-layout {
		grid-template-columns: 1fr;
		grid-template-rows: auto auto;
		align-content: start;
		padding-bottom: calc(var(--ldtube-fallback-height, 44px) + 8px);
	}

	/* Override outline-side desktop grid specificity on mobile. */
	.ldtube-playlist-layout.ldtube-outline-left,
	.ldtube-playlist-layout.ldtube-outline-right {
		grid-template-columns: 1fr;
		grid-template-rows: auto auto;
		align-content: start;
	}

	.ldtube-playlist-layout.ldtube-outline-left {
		padding-top: 0;
	}

	/* Mobile: always stack outline above the content player. */
	.ldtube-playlist {
		order: 1;
	}

	.ldtube-player-stack {
		order: 2;
	}

	.ldtube-playlist-toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}

	/* Mobile: let the full outline panel use available height and scroll as one list. */
	.ldtube-playlist-sections {
		overflow-y: auto;
		overscroll-behavior: contain;
		-webkit-overflow-scrolling: touch;
	}

	.ldtube-playlist-section.is-open {
		max-height: none;
		overflow-y: visible;
	}

	.ldtube-playlist.is-collapsed .ldtube-playlist-sections {
		display: none;
	}

	/* Hide empty-state copy / anything except the bar when collapsed. */
	.ldtube-playlist.is-collapsed > :not(.ldtube-playlist-head) {
		display: none !important;
	}

	/*
	 * Collapsed: thin strip (~30px) — layout grid no longer stretches this row;
	 * no viewport-based inline max-height (see player-layout.js).
	 */
	.ldtube-playlist.is-collapsed {
		box-sizing: border-box;
		align-self: start;
		height: 30px;
		min-height: 30px;
		max-height: 30px !important;
		flex: 0 0 auto;
		padding: 0 8px;
		overflow: hidden;
		display: flex;
		flex-direction: column;
		justify-content: center;
		border-radius: 8px;
	}

	.ldtube-playlist.is-collapsed .ldtube-playlist-head {
		flex: 0 0 auto;
		flex-wrap: nowrap;
		align-items: center;
		gap: 6px;
		min-height: 0;
		margin: 0;
		padding: 0;
	}

	.ldtube-playlist.is-collapsed h3 {
		margin: 0;
		padding: 0;
		font-size: 0.75rem;
		line-height: 1;
		font-weight: 600;
	}

	.ldtube-playlist.is-collapsed .ldtube-playlist-toggle {
		padding: 1px 6px;
		font-size: 0.68rem;
		line-height: 1;
		min-height: 0;
		border-radius: 999px;
	}

	.ldtube-main {
		padding-left: 12px;
		padding-right: 12px;
		padding-bottom: calc(20px + env(safe-area-inset-bottom, 0px));
	}

	main#main-content {
		margin-top: -12px;
	}

	.ldtube-courses-nav {
	}

	.ldtube-user-meta {
		justify-content: flex-start;
		flex-wrap: wrap;
	}

	.ldtube-user-meta > a {
		margin-left: auto;
	}

	.ldtube-user-meta > a {
	}

	.ldtube-mobile-menu-trigger {
		display: inline-flex;
		margin-left: auto;
	}

	.ldtube-desktop-main-menu-trigger {
		display: none !important;
	}

	.ldtube-step-fallback-link {
		padding: 7px 10px;
		bottom: calc(12px + env(safe-area-inset-bottom, 0px));
		display: grid;
		grid-template-columns: 1fr;
		gap: 6px;
		align-items: start;
	}

	.ldtube-open-step-link {
		display: block;
		white-space: normal;
		font-size: 0.8rem;
		line-height: 1.2;
	}

	.ldtube-step-actions-track {
		position: static;
		left: auto;
		width: 100%;
		pointer-events: auto;
	}

	.ldtube-step-actions-grid {
		gap: 6px;
		grid-template-columns: 1fr auto 1fr;
		height: auto;
	}

	.ldtube-step-actions-grid a,
	.ldtube-step-actions-grid .learndash_mark_complete_button {
		width: auto;
		max-width: 100%;
		font-size: 0.8rem;
		padding: 7px 8px;
	}

	/* Ensure embedded video players remain tappable in mobile scroll containers. */
	.ldtube-step-content {
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
	}

	.ldtube-step-content.has-embedded-media {
		overflow: visible;
		height: auto !important;
		max-height: none !important;
	}

	.ldtube-step-content.has-long-text-content {
		overflow: visible;
	}

	.ldtube-step-content-inner iframe {
		touch-action: manipulation;
	}
}
