/**
 * UV Cursuri — stiluri front-end.
 *
 * Paletă crem + auriu, pe alb. Totul vine din variabilele de mai jos; ca să
 * adaptezi modulul, redefinește-le în CSS-ul temei:
 *
 *   :root { --uv-accent: #8a6d3b; --uv-radius: 6px; --uv-max-w: 1200px; }
 */

:root {
	/* Suprafețe */
	--uv-page-bg: #f6f3ec;
	--uv-bg: #ffffff;
	--uv-sidebar-bg: #ffffff;
	--uv-surface: #ffffff;
	--uv-surface-2: #faf8f3;
	--uv-surface-3: #f1ece1;
	--uv-border: #e7e1d5;
	--uv-border-strong: #d7cfbe;

	/* Text */
	--uv-fg: #23201b;
	--uv-muted: #6b6459;
	--uv-subtle: #9b9284;

	/*
	 * Accent: galben pal. Pe fundal de accent scriem cu brun foarte inchis
	 * (contrast ~9:1), iar cand accentul e folosit ca text pe alb folosim
	 * varianta inchisa --uv-accent-text (contrast ~6:1). Galbenul pal pe alb
	 * nu ar fi lizibil.
	 */
	--uv-accent: #e8c766;
	--uv-accent-hover: #dcb745;
	--uv-accent-fg: #2b2205;
	--uv-accent-text: #7a5d12;
	--uv-accent-soft: #fbf3dc;
	--uv-accent-line: #e5d3a0;
	--uv-ring: rgba( 220, 183, 69, 0.55 );

	/* Semantice */
	--uv-danger: #b3261e;
	--uv-danger-soft: rgba( 179, 38, 30, 0.08 );
	--uv-success: #2e7d52;
	--uv-success-soft: rgba( 46, 125, 82, 0.09 );
	--uv-warning: #a2740f;
	--uv-warning-soft: rgba( 162, 116, 15, 0.1 );

	/* Formă și ritm */
	--uv-radius: 12px;
	--uv-radius-sm: 9px;
	--uv-radius-lg: 18px;
	--uv-radius-pill: 999px;
	--uv-gap: 16px;
	--uv-gap-lg: 24px;
	--uv-pad: 28px;

	/* Lățimea conținutului și spațierea laterală */
	--uv-max-w: 1400px;
	--uv-page-pad: clamp( 14px, 3vw, 40px );

	--uv-sidebar-w: 280px;
	--uv-sidebar-w-collapsed: 76px;
	--uv-content-w: 1200px;
	--uv-prose: 72ch;

	--uv-font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--uv-shadow: 0 1px 2px rgba( 35, 32, 27, 0.04 ), 0 10px 30px rgba( 35, 32, 27, 0.06 );
	--uv-shadow-sm: 0 1px 2px rgba( 35, 32, 27, 0.05 );

	/*
	 * Iconita butonului de restrangere. E folosita ca masca, nu ca imagine,
	 * ca sa poata prelua `currentColor` in toate starile (normal, hover, focus,
	 * activ) dintr-un singur loc.
	 */
	--uv-icon-collapse: url( "data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 17l-5-5 5-5'/%3E%3Cpath d='M18 17l-5-5 5-5'/%3E%3C/svg%3E" );
	--uv-icon-expand: url( "data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 7l5 5-5 5'/%3E%3Cpath d='M6 7l5 5-5 5'/%3E%3C/svg%3E" );
}

/* Fundalul paginii de cont, inclusiv ecranul de autentificare. */
body.woocommerce-account {
	background-color: var( --uv-page-bg );
}

/* ============================================================== Wrapper

   Conținutul e centrat la --uv-max-w, cu spațiere laterală care scade pe
   ecrane mici. Dacă tema ta ține pagina într-un container îngust, setează
   pagina „Contul meu" pe un template full-width; alternativ, adaugă în CSS-ul
   temei clasa de evadare:

     .uv-dash-wrap { margin-inline: calc( 50% - 50vw ); }
   -------------------------------------------------------------------- */

.uv-dash-wrap,
.uv-auth {
	box-sizing: border-box;
	width: 100%;
	background-color: var( --uv-page-bg );
}

/*
 * Dashboard-ul se intinde pe toata latimea paginii, ca un shell de aplicatie:
 * bara laterala lipita de marginea stanga, iar continutul din interior centrat
 * la --uv-content-w. Pagina trebuie sa fie pe template full-width.
 */
.uv-dash-wrap {
	max-width: none;
	margin: 0;
	padding: 0;
}

.uv-auth {
	max-width: calc( var( --uv-max-w ) + 2 * var( --uv-page-pad ) );
	margin-inline: auto;
	padding: var( --uv-page-pad );
}

/* =============================================================== Shell */

.uv-dash,
.uv-auth {
	font-family: var( --uv-font );
	font-size: 15px;
	line-height: 1.55;
	color: var( --uv-fg );
	-webkit-font-smoothing: antialiased;
}

.uv-dash *,
.uv-auth * {
	box-sizing: border-box;
}

.uv-dash {
	display: grid;
	grid-template-columns: var( --uv-sidebar-w ) minmax( 0, 1fr );
	align-items: start;
	/*
	 * Inaltimea vine din JS: restul ecranului, dupa ce scadem antetul si subsolul
	 * temei. Un 100vh fix ar adauga scroll chiar si cand continutul incape.
	 */
	min-height: var( --uv-dash-min-h, 0px );
	/*
	 * Coloana barei laterale e pictata din fundalul grilei, nu din inaltimea
	 * elementului, ca sa arate plina pana jos fara sa impuna o inaltime.
	 */
	background:
		linear-gradient(
			to right,
			var( --uv-sidebar-bg ) 0 calc( var( --uv-sidebar-w ) - 1px ),
			var( --uv-border ) calc( var( --uv-sidebar-w ) - 1px ) var( --uv-sidebar-w ),
			var( --uv-page-bg ) var( --uv-sidebar-w )
		);
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

/*
 * Restrangerea schimba variabila, nu declaratia de grid: asa nu intram in
 * conflict cu regula de baza si tranzitia ramane fluida.
 */
.uv-dash.is-collapsed {
	--uv-sidebar-w: var( --uv-sidebar-w-collapsed );
}

.uv-dash a {
	color: inherit;
	text-decoration: none;
}

.uv-dash__main {
	min-width: 0;
	display: flex;
	flex-direction: column;
}

/*
 * Header-ul si continutul folosesc exact aceeasi formula de spatiere laterala,
 * deci textul din header si cardurile din pagina raman aliniate la orice
 * rezolutie: cand zona principala e mai lata decat --uv-content-w, surplusul se
 * imparte egal; sub acea latime ramane spatierea minima.
 */
.uv-dash__content {
	padding: 32px max( var( --uv-page-pad ), calc( ( 100% - var( --uv-content-w ) ) / 2 ) ) 64px;
	background: var( --uv-page-bg );
}

/* ============================================================= Sidebar */

.uv-dash__sidebar {
	/* Ramane pe ecran cat derulezi, dar fara inaltime impusa. */
	position: sticky;
	top: 0;
	align-self: start;
	max-height: 100vh;
	overflow-y: auto;
	display: flex;
	flex-direction: column;
	gap: 18px;
	padding: 20px 14px 18px;
	background: transparent;
	border-right: 0;
	min-width: 0;
}

.uv-sidebar__top {
	display: flex;
	align-items: center;
	gap: 8px;
	padding-bottom: 14px;
	border-bottom: 1px solid var( --uv-border );
	min-height: 40px;
}

.uv-brand {
	display: flex;
	align-items: center;
	gap: 10px;
	padding-left: 6px;
	min-width: 0;
	flex: 1 1 auto;
	overflow: hidden;
}

.uv-brand__logo {
	max-height: 36px;
	max-width: 100%;
	width: auto;
	height: auto;
	display: block;
}

.uv-brand__text {
	font-size: 1rem;
	font-weight: 650;
	letter-spacing: -0.015em;
	color: var( --uv-fg );
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.uv-collapse {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 34px;
	height: 34px;
	padding: 0;
	border: 1px solid var( --uv-border );
	border-radius: var( --uv-radius-sm );
	background: var( --uv-surface-2 );
	color: var( --uv-muted );
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.uv-collapse:hover {
	background: var( --uv-accent-soft );
	border-color: var( --uv-accent-line );
	color: var( --uv-accent-text );
}

.uv-collapse .uv-icon {
	width: 17px;
	height: 17px;
}

.uv-dash.is-collapsed .uv-brand {
	display: none;
}

.uv-dash.is-collapsed .uv-sidebar__top {
	justify-content: center;
}

.uv-dash__nav {
	flex: 1 1 auto;
	min-width: 0;
}

.uv-nav {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.uv-nav__item {
	margin: 0;
	padding: 0;
	list-style: none;
}

.uv-nav__link,
.uv-sidebar-foot {
	position: relative;
	display: flex;
	align-items: center;
	gap: 11px;
	padding: 10px 12px;
	border-radius: var( --uv-radius-sm );
	font-size: 0.9375rem;
	font-weight: 500;
	color: var( --uv-muted );
	white-space: nowrap;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.uv-nav__link:hover,
.uv-nav__link:focus-visible {
	background: var( --uv-surface-2 );
	color: var( --uv-fg );
}

.uv-nav__icon {
	display: inline-flex;
	flex: 0 0 auto;
	color: currentColor;
}

.uv-nav__item.is-active .uv-nav__link {
	background: var( --uv-accent-soft );
	color: var( --uv-fg );
	font-weight: 600;
}

.uv-nav__item.is-active .uv-nav__link::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY( -50% );
	width: 3px;
	height: 20px;
	border-radius: 0 3px 3px 0;
	background: var( --uv-accent );
}

.uv-nav__item.is-active .uv-nav__icon {
	color: var( --uv-accent-text );
}

.uv-nav__item--logout .uv-nav__link:hover {
	background: var( --uv-danger-soft );
	color: var( --uv-danger );
}

.uv-nav__label {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
}

.uv-sidebar-foot {
	margin-top: 4px;
	padding-top: 14px;
	border-top: 1px solid var( --uv-border );
	border-radius: 0;
	font-size: 0.8125rem;
	color: var( --uv-subtle );
}

.uv-sidebar-foot:hover {
	color: var( --uv-fg );
}

/* Restrâns: doar iconițe, centrate. Eticheta rămâne în atributul title. */
.uv-dash.is-collapsed .uv-nav__label {
	display: none;
}

.uv-dash.is-collapsed .uv-nav__link,
.uv-dash.is-collapsed .uv-sidebar-foot {
	justify-content: center;
	padding-left: 8px;
	padding-right: 8px;
}

.uv-icon {
	width: 20px;
	height: 20px;
	flex: 0 0 auto;
}

/* ============================================================== Header */

.uv-dash__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var( --uv-gap );
	padding: 14px max( var( --uv-page-pad ), calc( ( 100% - var( --uv-content-w ) ) / 2 ) );
	border-bottom: 1px solid var( --uv-border );
	background: var( --uv-bg );
}

.uv-dash__heading {
	min-width: 0;
}

.uv-dash__title {
	margin: 0;
	font-size: 1.4rem;
	font-weight: 650;
	line-height: 1.25;
	letter-spacing: -0.02em;
	color: var( --uv-fg );
}

.uv-dash__subtitle {
	margin: 3px 0 0;
	font-size: 0.875rem;
	color: var( --uv-muted );
}

.uv-chip {
	display: flex;
	align-items: center;
	gap: 11px;
	padding: 6px 6px 6px 14px;
	border: 1px solid var( --uv-border );
	border-radius: var( --uv-radius-pill );
	background: var( --uv-bg );
	flex: 0 0 auto;
	max-width: 300px;
	text-decoration: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.uv-chip:hover {
	border-color: var( --uv-accent-line );
	box-shadow: var( --uv-shadow-sm );
	text-decoration: none;
}

.uv-chip__avatar {
	display: inline-flex;
	flex: 0 0 auto;
	line-height: 0;
	border-radius: 50%;
	overflow: hidden;
	background: var( --uv-surface-3 );
}

.uv-chip__avatar {
	width: 36px;
	height: 36px;
}

.uv-avatar__img,
.uv-chip__avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	border-radius: 50%;
}

.uv-chip__text {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	min-width: 0;
	line-height: 1.3;
}

.uv-dash .uv-chip__name {
	font-size: 0.875rem;
	font-weight: 650;
	color: var( --uv-fg );
	text-decoration: none;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	max-width: 100%;
}

.uv-dash .uv-chip__meta {
	font-size: 0.75rem;
	font-weight: 400;
	color: var( --uv-subtle );
	text-decoration: none;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	max-width: 100%;
}

/* ============================================================== Pagină */

.uv-page {
	display: flex;
	flex-direction: column;
	gap: var( --uv-gap-lg );
}

.uv-back {
	margin: 0;
	font-size: 0.875rem;
}

.uv-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var( --uv-muted );
	font-weight: 500;
	text-decoration: none;
}

.uv-link:hover {
	color: var( --uv-accent-text );
}

.uv-link--sm {
	font-size: 0.8125rem;
}

.uv-link .uv-icon {
	width: 16px;
	height: 16px;
}

.uv-section {
	display: flex;
	flex-direction: column;
	gap: var( --uv-gap );
}

.uv-section__head {
	display: flex;
	align-items: center;
	gap: 10px;
}

.uv-section__title {
	margin: 0;
	font-size: 1.0625rem;
	font-weight: 650;
	letter-spacing: -0.01em;
	color: var( --uv-fg );
}

.uv-badge {
	display: inline-flex;
	align-items: center;
	flex: 0 0 auto;
	padding: 2px 10px;
	border: 1px solid var( --uv-accent-line );
	border-radius: var( --uv-radius-pill );
	background: var( --uv-accent-soft );
	font-size: 0.75rem;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	color: var( --uv-accent-text );
}

/* ============================== Lista de programe — un rând pe program */

/*
 * Carduri individuale, in grila. `stretch` (nu `start`) le face egale ca
 * inaltime pe rand, ca butonul sa cada pe aceeasi linie la toate.
 */
.uv-list {
	display: grid;
	grid-template-columns: repeat( auto-fill, minmax( 300px, 1fr ) );
	gap: 20px;
	align-items: stretch;
}

.uv-card {
	display: grid;
	grid-template-columns: minmax( 0, 1fr );
	background: var( --uv-surface );
	border: 1px solid var( --uv-border );
	border-radius: var( --uv-radius );
	overflow: hidden;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.uv-card:hover {
	border-color: var( --uv-accent-line );
	box-shadow: var( --uv-shadow-sm );
}

.uv-card__media {
	position: relative;
	display: block;
	aspect-ratio: 16 / 9;
	background: var( --uv-surface-3 );
	line-height: 0;
}

.uv-card__media img,
.uv-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.uv-card__placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	background: linear-gradient( 135deg, var( --uv-surface-2 ), var( --uv-surface-3 ) );
	color: var( --uv-subtle );
}

.uv-card__placeholder .uv-icon {
	width: 34px;
	height: 34px;
}

.uv-card__body {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 14px 16px 16px;
	min-width: 0;
	flex: 1 1 auto;
}

.uv-card__head {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
}

.uv-card__title {
	margin: 0;
	/* Maxim 22px pe desktop; ceva mai mic pe ecrane inguste. */
	font-size: clamp( 1.0625rem, 0.95rem + 0.5vw, 1.375rem );
	font-weight: 650;
	line-height: 1.35;
	letter-spacing: -0.015em;
	min-width: 0;
}

.uv-card__title a {
	color: var( --uv-fg );
	text-decoration: none;
}

.uv-card__title a:hover {
	color: var( --uv-accent-text );
}

.uv-card__excerpt {
	margin: 0;
	font-size: 0.9375rem;
	color: var( --uv-muted );
}

.uv-card__foot {
	margin-top: auto;
	padding-top: 10px;
}

/*
 * Titlul sectiunii si contorul: aliniate pe centru optic, nu pe linia de baza.
 * Eticheta e inline-flex cu inaltime proprie, deci `baseline` o cobora vizibil.
 */
.uv-section__head {
	align-items: center;
	line-height: 1;
}

.uv-section__title {
	line-height: 1.2;
}

/* ============================================================= Butoane */

a.uv-btn,
button.uv-btn,
span.uv-btn,
.uv-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 0 18px;
	height: 42px;
	border: 1px solid transparent;
	border-radius: var( --uv-radius-sm );
	background: var( --uv-surface-3 );
	color: var( --uv-fg );
	font-family: var( --uv-font );
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1;
	letter-spacing: -0.005em;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

a.uv-btn--primary,
button.uv-btn--primary,
span.uv-btn--primary,
.uv-btn--primary {
	background: var( --uv-accent );
	border-color: var( --uv-accent );
	color: var( --uv-accent-fg );
}

a.uv-btn--primary:hover,
button.uv-btn--primary:hover,
a.uv-btn--primary:focus-visible,
button.uv-btn--primary:focus-visible,
.uv-btn--primary:hover {
	background: var( --uv-accent-hover );
	border-color: var( --uv-accent-hover );
	color: var( --uv-accent-fg );
	text-decoration: none;
}

a.uv-btn--ghost,
button.uv-btn--ghost,
.uv-btn--ghost {
	background: var( --uv-bg );
	border-color: var( --uv-border-strong );
	color: var( --uv-fg );
}

a.uv-btn--ghost:hover,
button.uv-btn--ghost:hover,
.uv-btn--ghost:hover {
	background: var( --uv-surface-2 );
	border-color: var( --uv-accent-line );
	color: var( --uv-fg );
}

.uv-btn--sm {
	height: 36px;
	padding: 0 14px;
	font-size: 0.875rem;
}

.uv-btn--lg {
	height: 50px;
	font-size: 1rem;
}

.uv-btn--block {
	width: 100%;
}

.uv-btn .uv-icon {
	width: 16px;
	height: 16px;
}

.uv-btn--disabled,
.uv-btn[aria-disabled="true"],
.uv-is-disabled {
	background: var( --uv-surface-3 );
	border-color: var( --uv-border );
	color: var( --uv-subtle );
	cursor: not-allowed;
	pointer-events: none;
}

.uv-dash :focus-visible,
.uv-auth :focus-visible {
	outline: 2px solid var( --uv-ring );
	outline-offset: 2px;
}

/* ========================================================= Stare goală */

.uv-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	padding: 52px var( --uv-pad );
	background: var( --uv-surface-2 );
	border: 1px dashed var( --uv-border-strong );
	border-radius: var( --uv-radius );
	text-align: center;
}

.uv-empty__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	margin-bottom: 4px;
	border-radius: var( --uv-radius-pill );
	background: var( --uv-accent-soft );
	color: var( --uv-accent-text );
}

.uv-empty__icon .uv-icon {
	width: 23px;
	height: 23px;
}

.uv-empty__title {
	margin: 0;
	font-size: 1.0625rem;
	font-weight: 650;
	color: var( --uv-fg );
}

.uv-empty__text {
	margin: 0;
	max-width: 48ch;
	font-size: 0.875rem;
	color: var( --uv-muted );
}

.uv-empty .uv-btn {
	margin-top: 8px;
}

/* ======================================================= Panouri, text */

.uv-panel {
	padding: var( --uv-pad );
	background: var( --uv-surface );
	border: 1px solid var( --uv-border );
	border-radius: var( --uv-radius );
}

.uv-panel--intro {
	padding: 18px 22px;
	background: var( --uv-surface-2 );
}

.uv-prose {
	max-width: var( --uv-prose );
	font-size: 0.9375rem;
	color: var( --uv-muted );
}

.uv-prose > *:first-child {
	margin-top: 0;
}

.uv-prose > *:last-child {
	margin-bottom: 0;
}

.uv-prose h2,
.uv-prose h3,
.uv-prose h4,
.uv-prose strong,
.uv-prose b {
	color: var( --uv-fg );
}

.uv-prose a {
	color: var( --uv-accent-text );
	text-decoration: underline;
	text-underline-offset: 2px;
}

.uv-prose ul,
.uv-prose ol {
	padding-left: 1.35em;
}

.uv-prose li + li {
	margin-top: 4px;
}

/* ============================================================== Lecții */

.uv-lessons {
	display: flex;
	flex-direction: column;
	gap: var( --uv-gap-lg );
}

.uv-lesson {
	padding: 20px;
	background: var( --uv-surface );
	border: 1px solid var( --uv-border );
	border-radius: var( --uv-radius );
}

.uv-lesson__head {
	display: flex;
	align-items: flex-start;
	gap: 13px;
	margin-bottom: 16px;
}

.uv-lesson__index {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 36px;
	height: 36px;
	border-radius: var( --uv-radius-sm );
	background: var( --uv-accent-soft );
	border: 1px solid var( --uv-accent-line );
	color: var( --uv-accent-text );
	font-size: 0.8125rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.uv-lesson__heading {
	min-width: 0;
}

.uv-lesson__title {
	margin: 0;
	font-size: 1.125rem;
	font-weight: 650;
	line-height: 1.35;
	letter-spacing: -0.015em;
	color: var( --uv-fg );
}

.uv-lesson__meta {
	margin: 2px 0 0;
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var( --uv-subtle );
}

/*
 * Player-ul iese din padding-ul cardului ca să folosească toată lățimea
 * conținutului (până la --uv-max-w).
 */
.uv-lesson__media {
	margin: 0 -20px;
}

.uv-lesson__text {
	margin-top: 20px;
	max-width: none;
}

/* ============================================================ Fișiere */

.uv-files {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 20px;
}

/* Textul butonului e scris de admin și poate fi lung: îl lăsăm să se rupă. */
.uv-files__btn,
a.uv-btn.uv-files__btn {
	max-width: 100%;
	height: auto;
	min-height: 42px;
	padding-block: 10px;
	line-height: 1.3;
	text-align: left;
	white-space: normal;
}

.uv-files__btn .uv-icon {
	flex: 0 0 auto;
}

/* ================================================== Durata accesului */

.uv-program__expiry {
	margin: 0;
	font-size: 0.875rem;
	color: var( --uv-muted );
}

.uv-program__expiry strong {
	color: var( --uv-fg );
}

.uv-card__expiry {
	margin: 0;
	font-size: 0.8125rem;
	color: var( --uv-subtle );
}

/* =============================================================== Video */

.uv-video {
	position: relative;
	aspect-ratio: 16 / 9;
	background: #14120f;
	overflow: hidden;
}

.uv-lesson__media .uv-video {
	border-block: 1px solid var( --uv-border );
}

.uv-video__facade {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: #14120f;
	cursor: pointer;
}

.uv-video__thumb {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	opacity: 0.85;
	transition: opacity 0.2s ease, transform 0.3s ease;
}

.uv-video__facade:hover .uv-video__thumb,
.uv-video__facade:focus-visible .uv-video__thumb {
	opacity: 1;
	transform: scale( 1.015 );
}

.uv-video__icon {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
}

.uv-video__icon svg {
	width: 76px;
	height: auto;
	filter: drop-shadow( 0 4px 18px rgba( 0, 0, 0, 0.45 ) );
	transition: transform 0.2s ease;
}

.uv-video__facade:hover .uv-video__icon svg {
	transform: scale( 1.08 );
}

.uv-video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}

.uv-video__fallback {
	position: absolute;
	inset: auto 0 12px;
	text-align: center;
	color: #fff;
}

.uv-video-error,
.uv-admin-note {
	margin: 0;
	padding: 11px 14px;
	background: var( --uv-warning-soft );
	border: 1px solid var( --uv-warning );
	border-radius: var( --uv-radius-sm );
	color: var( --uv-warning );
	font-size: 0.8125rem;
	word-break: break-word;
}

.uv-lesson__media .uv-video-error {
	margin: 0 20px;
}

.uv-video-error code {
	background: transparent;
	color: inherit;
}

/* ======================================================= Autentificare */

.uv-auth {
	/* Cardul se centreaza si pe verticala, nu doar pe orizontala. */
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 88vh;
}

.uv-auth__card {
	width: 100%;
	max-width: 440px;
	padding: 40px 36px;
	background: var( --uv-bg );
	border: 1px solid var( --uv-border );
	border-radius: var( --uv-radius-lg );
	box-shadow: var( --uv-shadow );
}

.uv-auth__head {
	margin-bottom: 28px;
	text-align: center;
}

.uv-auth__title {
	margin: 0;
	font-size: 1.75rem;
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.2;
	color: var( --uv-fg );
}

.uv-auth__subtitle {
	margin: 8px 0 0;
	font-size: 0.9375rem;
	color: var( --uv-muted );
}

.uv-auth__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 0 0 20px;
}

/* Exact 15px intre campul de parola si randul de dedesubt. */
.uv-auth .uv-field:has( + .uv-auth__row ) {
	margin-bottom: 15px;
}

.uv-auth__foot {
	margin: 22px 0 0;
	text-align: center;
	font-size: 0.8125rem;
	color: var( --uv-subtle );
}

/* Separator „sau continuă cu" */
.uv-divider {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 26px 0 18px;
	font-size: 0.8125rem;
	color: var( --uv-subtle );
}

.uv-divider::before,
.uv-divider::after {
	content: "";
	flex: 1 1 auto;
	height: 1px;
	background: var( --uv-border );
}

/*
 * Flex, nu grid: `repeat(auto-fit, minmax(0, 1fr))` genera mai multe coloane
 * decat butoane, de unde spatiul mare dintre ele. Asa fiecare buton ia o parte
 * egala din latime, cu gap fix.
 */
.uv-social {
	display: flex;
	gap: 20px;
}

.uv-social__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 52px;
	padding: 0;
	border: 1px solid var( --uv-border );
	border-radius: var( --uv-radius-sm );
	background: var( --uv-bg );
	cursor: pointer;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.uv-social__btn:hover {
	border-color: var( --uv-border-strong );
	box-shadow: var( --uv-shadow-sm );
}

/* Furnizor neconfigurat: arată activ, dar nu face nimic la click. */
.uv-social__btn.is-soon {
	cursor: default;
}

.uv-social__btn.is-soon:hover {
	box-shadow: none;
}

/* =========================================================== Formulare */

.uv-field {
	display: block;
	margin: 0 0 18px;
}

/*
 * Câmp cu etichetă decupată în chenar. Eticheta e poziționată peste bordură,
 * nu peste text — de aceea nu se mai suprapune peste ce scrie utilizatorul.
 */
.uv-input-box {
	position: relative;
	display: block;
}

.uv-dash .uv-input,
.uv-auth .uv-input,
.uv-dash .uv-form input[type="text"],
.uv-dash .uv-form input[type="email"],
.uv-dash .uv-form input[type="tel"],
.uv-dash .uv-form input[type="password"],
.uv-dash .uv-form input[type="number"],
.uv-dash .uv-form select,
.uv-dash .uv-form textarea,
.uv-auth .uv-form input[type="text"],
.uv-auth .uv-form input[type="password"] {
	width: 100%;
	height: 54px;
	padding: 0 16px;
	background: var( --uv-bg );
	border: 1px solid var( --uv-border-strong );
	border-radius: var( --uv-radius-sm );
	color: var( --uv-fg );
	font-family: var( --uv-font );
	font-size: 0.9375rem;
	line-height: 1.4;
	box-shadow: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.uv-dash .uv-form textarea {
	height: auto;
	min-height: 110px;
	padding: 12px 16px;
}

.uv-dash .uv-input::placeholder,
.uv-auth .uv-input::placeholder {
	color: var( --uv-subtle );
}

.uv-dash .uv-input:focus,
.uv-auth .uv-input:focus,
.uv-dash .uv-form input:focus,
.uv-dash .uv-form select:focus,
.uv-dash .uv-form textarea:focus,
.uv-auth .uv-form input:focus {
	border-color: var( --uv-accent );
	box-shadow: 0 0 0 3px var( --uv-accent-soft );
	outline: none;
}

.uv-auth .uv-input-box__label {
	position: absolute;
	top: 0;
	left: 12px;
	transform: translateY( -50% );
	padding: 0 6px;
	margin: 0;
	background: var( --uv-bg );
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.01em;
	color: var( --uv-muted );
	pointer-events: none;
	transition: color 0.15s ease;
}

.uv-input-box:focus-within .uv-input-box__label {
	color: var( --uv-accent-text );
}

/* Câmpurile din dashboard păstrează eticheta clasică, deasupra. */
.uv-dash .uv-field label,
.uv-dash .uv-form .form-row label {
	display: block;
	margin-bottom: 7px;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: -0.005em;
	color: var( --uv-fg );
}

.uv-help {
	display: block;
	margin-top: 6px;
	font-size: 0.75rem;
	color: var( --uv-subtle );
}

.uv-dash .uv-checkbox,
.uv-auth .uv-checkbox {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 0;
	font-size: 0.875rem;
	font-weight: 400;
	color: var( --uv-muted );
	cursor: pointer;
}

.uv-dash .uv-checkbox__input,
.uv-auth .uv-checkbox__input {
	width: 18px;
	height: 18px;
	margin: 0;
	accent-color: var( --uv-accent-text );
	flex: 0 0 auto;
}

.uv-fieldset {
	margin: 0 0 18px;
	padding: 20px;
	border: 1px solid var( --uv-border );
	border-radius: var( --uv-radius-sm );
	background: var( --uv-surface-2 );
}

.uv-dash .uv-fieldset legend {
	padding: 0 8px;
	margin-bottom: 0;
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var( --uv-muted );
}

.uv-fieldset .uv-field:last-child {
	margin-bottom: 0;
}

.uv-form__grid {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 220px, 1fr ) );
	gap: 0 var( --uv-gap );
}

.uv-form__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: var( --uv-gap ) 0 0;
}

.uv-auth .uv-form__actions {
	margin: 0;
}

/* Câmpurile generate de woocommerce_form_field(). */
.uv-dash .uv-form .form-row {
	display: block;
	margin: 0 0 18px;
	padding: 0;
}

.uv-dash .uv-form .form-row-wide,
.uv-dash .uv-form .form-row.notes {
	grid-column: 1 / -1;
}

.uv-dash .uv-form .required {
	color: var( --uv-danger );
	text-decoration: none;
	border: 0;
}

.uv-dash .uv-form .optional {
	color: var( --uv-subtle );
}

/* select2 / selectWoo pentru județ și țară. */
.uv-dash .select2-container--default .select2-selection--single {
	height: 54px;
	background: var( --uv-bg );
	border: 1px solid var( --uv-border-strong );
	border-radius: var( --uv-radius-sm );
}

.uv-dash .select2-container--default .select2-selection--single .select2-selection__rendered {
	height: 52px;
	padding-left: 16px;
	line-height: 52px;
	color: var( --uv-fg );
}

.uv-dash .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 52px;
}

.uv-dash .select2-container--default .select2-selection--single .select2-selection__placeholder {
	color: var( --uv-subtle );
}

/* Dropdown-ul e atașat la <body>, deci îl legăm de clasa de pagină a Woo. */
body.woocommerce-account .select2-dropdown {
	background: var( --uv-bg );
	border: 1px solid var( --uv-border-strong );
	border-radius: var( --uv-radius-sm );
	color: var( --uv-fg );
}

body.woocommerce-account .select2-container--default .select2-results__option {
	background: transparent;
	color: var( --uv-fg );
}

body.woocommerce-account .select2-container--default .select2-results__option--highlighted[aria-selected],
body.woocommerce-account .select2-container--default .select2-results__option--highlighted[data-selected] {
	background: var( --uv-accent );
	color: var( --uv-accent-fg );
}

body.woocommerce-account .select2-container--default .select2-search--dropdown .select2-search__field {
	padding: 9px 12px;
	background: var( --uv-bg );
	border: 1px solid var( --uv-border-strong );
	border-radius: var( --uv-radius-sm );
	color: var( --uv-fg );
}

/* ================================================== Control segmentat */

.uv-segmented {
	display: inline-flex;
	gap: 3px;
	padding: 4px;
	background: var( --uv-surface-3 );
	border: 1px solid var( --uv-border );
	border-radius: var( --uv-radius-sm );
	align-self: flex-start;
	max-width: 100%;
	overflow-x: auto;
}

.uv-segmented__item {
	padding: 8px 18px;
	border: 1px solid transparent;
	border-radius: 6px;
	font-size: 0.875rem;
	font-weight: 600;
	color: var( --uv-muted );
	white-space: nowrap;
	text-decoration: none;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.uv-segmented__item:hover {
	color: var( --uv-fg );
}

.uv-segmented__item.is-active {
	background: var( --uv-bg );
	border-color: var( --uv-border );
	color: var( --uv-fg );
	box-shadow: var( --uv-shadow-sm );
}

/* ============================================= Notificări WooCommerce */

.uv-dash .woocommerce-message,
.uv-dash .woocommerce-error,
.uv-dash .woocommerce-info,
.uv-dash .woocommerce-notice {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0 0 var( --uv-gap );
	padding: 14px 18px;
	list-style: none;
	background: var( --uv-surface-2 );
	border: 1px solid var( --uv-border );
	border-left: 3px solid var( --uv-accent );
	border-radius: var( --uv-radius-sm );
	color: var( --uv-fg );
	font-size: 0.875rem;
}

.uv-dash .woocommerce-message {
	border-left-color: var( --uv-success );
	background: var( --uv-success-soft );
}

.uv-dash .woocommerce-error {
	border-left-color: var( --uv-danger );
	background: var( --uv-danger-soft );
}

.uv-dash .woocommerce-error li,
.uv-dash .woocommerce-info li,
.uv-dash .woocommerce-message li {
	list-style: none;
	margin: 0;
}

.uv-dash .woocommerce-message::before,
.uv-dash .woocommerce-error::before,
.uv-dash .woocommerce-info::before {
	content: none;
}

/* ==================================================== Tabel de comenzi */

.uv-dash .woocommerce-orders-table,
.uv-dash .shop_table {
	width: 100%;
	margin: 0;
	border-collapse: separate;
	border-spacing: 0;
	background: var( --uv-surface );
	border: 1px solid var( --uv-border );
	border-radius: var( --uv-radius );
	overflow: hidden;
	font-size: 0.875rem;
	color: var( --uv-fg );
}

.uv-dash .shop_table th {
	padding: 13px 16px;
	text-align: left;
	background: var( --uv-surface-2 );
	border-bottom: 1px solid var( --uv-border );
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var( --uv-muted );
}

.uv-dash .shop_table td {
	padding: 15px 16px;
	text-align: left;
	border-bottom: 1px solid var( --uv-border );
	color: var( --uv-fg );
}

.uv-dash .shop_table tr:last-child td {
	border-bottom: 0;
}

.uv-dash .shop_table a {
	color: var( --uv-accent-text );
}

.uv-dash .woocommerce-button,
.uv-dash .button {
	display: inline-flex;
	align-items: center;
	height: 34px;
	padding: 0 14px;
	border-radius: var( --uv-radius-sm );
	background: var( --uv-surface-3 );
	border: 1px solid var( --uv-border-strong );
	color: var( --uv-fg );
	font-size: 0.8125rem;
	font-weight: 600;
	text-decoration: none;
}

.uv-dash .woocommerce-button:hover,
.uv-dash .button:hover {
	background: var( --uv-accent );
	border-color: var( --uv-accent );
	color: var( --uv-accent-fg );
}

.uv-dash .woocommerce-pagination ul {
	display: flex;
	gap: 6px;
	list-style: none;
	margin: var( --uv-gap ) 0 0;
	padding: 0;
	border: 0;
}

.uv-dash .woocommerce-pagination li {
	list-style: none;
	border: 0;
	margin: 0;
}

.uv-dash .woocommerce-pagination a,
.uv-dash .woocommerce-pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 9px;
	border: 1px solid var( --uv-border );
	border-radius: var( --uv-radius-sm );
	background: var( --uv-bg );
	color: var( --uv-fg );
	font-size: 0.875rem;
}

.uv-dash .woocommerce-pagination .current {
	background: var( --uv-accent );
	border-color: var( --uv-accent );
	color: var( --uv-accent-fg );
}

/* ========================================================== Thank you */

.uv-thankyou {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
	margin: 0 0 var( --uv-gap-lg );
	padding: 24px 26px;
	background: var( --uv-surface-2 );
	border: 1px solid var( --uv-border );
	border-left: 3px solid var( --uv-accent );
	border-radius: var( --uv-radius );
	color: var( --uv-fg );
	font-family: var( --uv-font );
}

.uv-thankyou__title {
	margin: 0;
	font-size: 1.1875rem;
	font-weight: 650;
	letter-spacing: -0.015em;
	color: var( --uv-fg );
}

.uv-thankyou__text {
	margin: 0;
	font-size: 0.9375rem;
	color: var( --uv-muted );
}

.uv-thankyou p:last-child {
	margin-bottom: 0;
}

/* ========================================================= Responsive */

/* ============================ Resetare / setare parola

   WooCommerce randeaza aceste formulare in afara layout-ului nostru (nu trec
   prin myaccount/my-account.php), deci nu au wrapper-ul .uv-auth. Le stilizam
   direct pe markup-ul lui Woo, ca sa arate ca formularul de autentificare.
   -------------------------------------------------------------------- */

body.woocommerce-account .woocommerce:has( .woocommerce-ResetPassword ) {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 88vh;
	padding: var( --uv-page-pad );
}

body.woocommerce-account .woocommerce-ResetPassword {
	box-sizing: border-box;
	width: 100%;
	max-width: 440px;
	margin: 0 auto;
	padding: 40px 36px;
	background: var( --uv-bg );
	border: 1px solid var( --uv-border );
	border-radius: var( --uv-radius-lg );
	box-shadow: var( --uv-shadow );
	font-family: var( --uv-font );
	color: var( --uv-fg );
}

body.woocommerce-account .woocommerce-ResetPassword::before {
	display: block;
	margin-bottom: 8px;
	font-size: 1.75rem;
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.2;
	text-align: center;
	color: var( --uv-fg );
	content: "Resetare parolă";
}

body.woocommerce-account .woocommerce-ResetPassword > p:first-of-type {
	margin: 0 0 26px;
	font-size: 0.9375rem;
	text-align: center;
	color: var( --uv-muted );
}

body.woocommerce-account .woocommerce-ResetPassword .form-row,
body.woocommerce-account .woocommerce-ResetPassword .woocommerce-form-row {
	display: block;
	width: 100%;
	float: none;
	margin: 0 0 18px;
	padding: 0;
}

body.woocommerce-account .woocommerce-ResetPassword label {
	display: block;
	margin-bottom: 7px;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var( --uv-fg );
}

body.woocommerce-account .woocommerce-ResetPassword input[type="text"],
body.woocommerce-account .woocommerce-ResetPassword input[type="email"],
body.woocommerce-account .woocommerce-ResetPassword input[type="password"] {
	width: 100%;
	height: 54px;
	padding: 0 16px;
	background: var( --uv-bg );
	border: 1px solid var( --uv-border-strong );
	border-radius: var( --uv-radius-sm );
	color: var( --uv-fg );
	font-family: var( --uv-font );
	font-size: 0.9375rem;
	box-shadow: none;
}

body.woocommerce-account .woocommerce-ResetPassword input:focus {
	border-color: var( --uv-accent );
	box-shadow: 0 0 0 3px var( --uv-accent-soft );
	outline: none;
}

body.woocommerce-account .woocommerce-ResetPassword .clear {
	display: none;
}

body.woocommerce-account .woocommerce-ResetPassword button,
body.woocommerce-account .woocommerce-ResetPassword .button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 52px;
	padding: 0 18px;
	border: 1px solid var( --uv-accent );
	border-radius: var( --uv-radius-sm );
	background: var( --uv-accent );
	color: var( --uv-accent-fg );
	font-family: var( --uv-font );
	font-size: 1rem;
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
	box-shadow: none;
}

body.woocommerce-account .woocommerce-ResetPassword button:hover,
body.woocommerce-account .woocommerce-ResetPassword button:focus,
body.woocommerce-account .woocommerce-ResetPassword button:active {
	background: var( --uv-accent-hover );
	border-color: var( --uv-accent-hover );
	color: var( --uv-accent-fg );
}

body.woocommerce-account .woocommerce-ResetPassword br {
	display: none;
}

@media ( max-width: 1024px ) {
	.uv-dash,
	.uv-dash.is-collapsed {
		grid-template-columns: minmax( 0, 1fr );
		/*
		 * `align-content: start` lipeste randurile intre ele. Fara el, grila isi
		 * imparte inaltimea suplimentara intre randuri, iar elementele aliniate
		 * sus lasau o banda goala intre bara cu sigla si antet.
		 */
		align-content: start;
		/* O singura coloana: gradientul care picta bara laterala nu mai are sens. */
		background: var( --uv-page-bg );
	}

	/*
	 * Sub 1024px bara laterala se sparge in doua: sigla ramane statica sus, iar
	 * navigatia devine o bara fixa jos, cu iconita si eticheta sub ea. Nu mai
	 * exista scroll orizontal, pentru ca fiecare element ia o fractiune egala.
	 */
	.uv-dash__sidebar {
		position: static;
		height: auto;
		max-height: none;
		min-height: 0;
		overflow: visible;
		display: block;
		padding: 12px var( --uv-page-pad );
		background: var( --uv-sidebar-bg );
		border-right: 0;
		border-bottom: 1px solid var( --uv-border );
	}

	.uv-sidebar__top {
		justify-content: center;
		padding: 0;
		min-height: 0;
		border-bottom: 0;
	}

	.uv-brand {
		flex: 0 1 auto;
		justify-content: center;
		padding: 0;
	}

	.uv-brand__logo {
		max-height: 32px;
	}

	/*
	 * 0,3,0: blocul de override al temei vine mai jos in fisier si are 0,2,0,
	 * deci ar castiga la egalitate de specificitate.
	 */
	.uv-dash-wrap .uv-dash .uv-collapse,
	.uv-dash-wrap .uv-dash .uv-sidebar-foot {
		display: none;
	}

	.uv-dash__nav {
		position: fixed;
		inset: auto 0 0 0;
		z-index: 60;
		background: var( --uv-sidebar-bg );
		border-top: 1px solid var( --uv-border );
		padding: 6px 6px calc( 6px + env( safe-area-inset-bottom, 0px ) );
		box-shadow: 0 -2px 14px rgba( 35, 32, 27, 0.07 );
	}

	.uv-nav {
		flex-direction: row;
		gap: 2px;
	}

	.uv-nav__item {
		flex: 1 1 0;
		min-width: 0;
	}

	/* Etichete intregi, nu prescurtate: font mai mic si fara taiere. */
	.uv-dash .uv-nav__label,
	.uv-dash.is-collapsed .uv-nav__label {
		display: block;
		overflow: visible;
		font-size: 0.625rem;
		letter-spacing: -0.01em;
		line-height: 1.2;
		max-width: 100%;
		text-align: center;
		text-overflow: clip;
		white-space: nowrap;
	}

	.uv-nav__link {
		flex-direction: column;
		justify-content: center;
		gap: 4px;
		padding: 7px 2px;
	}

	.uv-nav__item.is-active .uv-nav__link::before {
		display: none;
	}

	/* Cardul de utilizator, mutat din antet in bara de jos. */
	.uv-dash .uv-nav__item--user .uv-chip {
		display: flex;
		flex-direction: column-reverse;
		align-items: center;
		justify-content: center;
		gap: 4px;
		padding: 7px 2px;
		max-width: 100%;
		border: 0;
		border-radius: var( --uv-radius-sm );
		background: transparent;
		box-shadow: none;
	}

	.uv-dash .uv-nav__item--user .uv-chip__avatar {
		width: 22px;
		height: 22px;
	}

	.uv-dash .uv-nav__item--user .uv-chip__text {
		text-align: center;
	}

	.uv-dash .uv-nav__item--user .uv-chip__name {
		font-size: 0.6875rem;
		font-weight: 500;
		line-height: 1.2;
		color: var( --uv-muted );
		text-align: center;
	}

	.uv-dash .uv-nav__item--user .uv-chip__meta {
		display: none;
	}

	/*
	 * „Setări” si „Cont” duc la aceeasi pagina. In bara de jos pastram doar
	 * „Cont”, care preia starea activa cand esti pe pagina de setari.
	 */
	.uv-dash .uv-dash__nav .woocommerce-MyAccount-navigation-link--edit-account {
		display: none;
	}

	.uv-dash .uv-nav:has( .woocommerce-MyAccount-navigation-link--edit-account.is-active ) .uv-nav__item--user .uv-chip {
		background: var( --uv-accent-soft );
	}

	.uv-dash .uv-nav:has( .woocommerce-MyAccount-navigation-link--edit-account.is-active ) .uv-nav__item--user .uv-chip__name {
		font-weight: 600;
		color: var( --uv-fg );
	}

	/* Bara de jos nu trebuie sa acopere finalul continutului. */
	.uv-dash__content {
		padding-bottom: calc( 96px + env( safe-area-inset-bottom, 0px ) );
	}

	.uv-card {
		grid-template-columns: minmax( 0, 1fr );
	}
}

@media ( max-width: 782px ) {
	:root {
		--uv-pad: 18px;
		--uv-gap-lg: 20px;
	}

	.uv-dash__header {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
	}

	.uv-chip {
		max-width: 100%;
		flex-direction: row-reverse;
		padding: 6px 14px 6px 6px;
	}

	.uv-chip__text {
		align-items: flex-start;
	}

	.uv-card {
		grid-template-columns: minmax( 0, 1fr );
	}

	.uv-card__body {
		padding: 16px 18px;
	}

	.uv-card__head {
		gap: 8px;
	}

	.uv-lesson {
		padding: 16px;
	}

	.uv-lesson__media {
		margin: 0 -16px;
	}

	.uv-lesson__media .uv-video-error {
		margin: 0 16px;
	}

	.uv-auth__card {
		padding: 28px 20px;
	}

	.uv-video__icon svg {
		width: 52px;
	}

	.uv-dash .shop_table,
	.uv-dash .shop_table thead,
	.uv-dash .shop_table tbody,
	.uv-dash .shop_table tr,
	.uv-dash .shop_table td {
		display: block;
		width: auto;
	}

	.uv-dash .shop_table thead {
		display: none;
	}

	.uv-dash .shop_table tr {
		padding: 8px 0;
		border-bottom: 1px solid var( --uv-border );
	}

	.uv-dash .shop_table td {
		padding: 6px 16px;
		border-bottom: 0;
	}

	.uv-dash .shop_table td::before {
		content: attr( data-title ) ": ";
		color: var( --uv-subtle );
		font-size: 0.8125rem;
	}
}

/* ======================================== Peste stilurile temei

   Tema si kit-ul Elementor stilizeaza `a` si `button` cu selectori de
   specificitate 0,1,1 (ex. `.elementor-kit-6 button`), care bateau regulile
   noastre scrise la 0,1,0. De aici veneau butonul de login ingust, chenarele
   rosii la butoanele social si sigla subliniata. Le repunem cu scope, 0,2,0.
   -------------------------------------------------------------------- */

.uv-dash .uv-btn,
.uv-auth .uv-btn {
	border: 1px solid transparent;
	border-radius: var( --uv-radius-sm );
	background: var( --uv-surface-3 );
	color: var( --uv-fg );
	text-decoration: none;
}

.uv-dash .uv-btn--primary,
.uv-auth .uv-btn--primary {
	background: var( --uv-accent );
	border-color: var( --uv-accent );
	color: var( --uv-accent-fg );
}

.uv-dash .uv-btn--primary:hover,
.uv-dash .uv-btn--primary:focus-visible,
.uv-auth .uv-btn--primary:hover,
.uv-auth .uv-btn--primary:focus-visible {
	background: var( --uv-accent-hover );
	border-color: var( --uv-accent-hover );
	color: var( --uv-accent-fg );
}

.uv-dash .uv-btn--ghost,
.uv-auth .uv-btn--ghost {
	background: var( --uv-bg );
	border-color: var( --uv-border-strong );
	color: var( --uv-fg );
}

/* Butonul de autentificare, pe toata latimea. */
.uv-auth .uv-form__actions {
	display: block;
}

.uv-auth .uv-form__actions .uv-btn,
.uv-auth .uv-btn--block {
	display: flex;
	width: 100%;
}

/* Sigla din bara laterala nu preia culoarea si sublinierea temei. */
.uv-dash .uv-brand,
.uv-dash .uv-brand__text {
	color: var( --uv-fg );
	text-decoration: none;
}

.uv-auth .uv-link,
.uv-auth .uv-link:hover,
.uv-dash .uv-link,
.uv-dash .uv-link:hover,
.uv-dash .uv-chip,
.uv-dash .uv-nav__link,
.uv-dash .uv-sidebar-foot,
.uv-dash .uv-card__title a,
.uv-dash .uv-segmented__item {
	text-decoration: none;
}

.uv-auth .uv-link:hover,
.uv-dash .uv-link:hover,
.uv-dash .uv-card__title a:hover {
	color: var( --uv-accent-text );
}

/*
 * Layout-ul implicit al WooCommerce.
 *
 * Pastram clasele `woocommerce-MyAccount-navigation` si
 * `woocommerce-MyAccount-content` pentru compatibilitate cu alte plugin-uri,
 * dar woocommerce-layout.css le da `float` si latimi procentuale (30% / 68%)
 * cu specificitate 0,2,0. Peste grid-ul nostru asta strangea bara laterala la
 * 30%% din coloana si continutul la 68%% din zona principala. Le anulam la 0,3,0.
 */
.woocommerce-account .uv-dash .woocommerce-MyAccount-navigation,
.woocommerce-account .uv-dash .woocommerce-MyAccount-content,
.uv-dash-wrap .uv-dash .uv-dash__sidebar,
.uv-dash-wrap .uv-dash .uv-dash__content {
	float: none;
	width: auto;
	margin: 0;
}

/*
 * Butoanele: tema le da propriul padding, de aceea textul aparea decentrat pe
 * verticala. Repunem inaltimea, padding-ul si centrarea la 0,2,0.
 */
.uv-auth .uv-btn,
.uv-dash .uv-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 42px;
	padding: 0 18px;
	line-height: 1;
	box-shadow: none;
}

.uv-auth .uv-btn--lg,
.uv-dash .uv-btn--lg {
	height: 52px;
	font-size: 1rem;
}

.uv-auth .uv-btn--sm,
.uv-dash .uv-btn--sm {
	height: 43px;
	padding: 0 14px;
	font-size: 0.875rem;
	width: 100%;
}

/* Butoanele social: latime egala, continut centrat, fond crem. */
.uv-auth .uv-social__btn {
	display: flex;
	flex: 1 1 0;
	min-width: 0;
	align-items: center;
	justify-content: center;
	height: 56px;
	padding: 0;
	margin: 0;
	border: 1px solid var( --uv-border );
	border-radius: var( --uv-radius-sm );
	background: #f6f3ec;
	box-shadow: none;
}

.uv-auth .uv-social__btn:hover {
	border-color: var( --uv-border-strong );
	background: var( --uv-surface-3 );
}

.uv-auth .uv-social__btn svg {
	display: block;
	flex: 0 0 auto;
}

/*
 * Butonul de restrangere. Iconita e desenata ca masca peste `currentColor`,
 * deci culoarea se schimba coerent in toate starile dintr-o singura proprietate.
 */
.uv-dash .uv-collapse {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	padding: 0;
	margin: 0;
	border: 1px solid var( --uv-border );
	border-radius: var( --uv-radius-sm );
	background: var( --uv-surface-2 );
	color: var( --uv-muted );
	box-shadow: none;
}

.uv-dash .uv-collapse .uv-icon {
	display: none;
}

.uv-dash .uv-collapse::before {
	content: "";
	width: 18px;
	height: 18px;
	background-color: currentColor;
	-webkit-mask: var( --uv-icon-collapse ) center / 18px 18px no-repeat;
	mask: var( --uv-icon-collapse ) center / 18px 18px no-repeat;
}

.uv-dash.is-collapsed .uv-collapse::before {
	-webkit-mask-image: var( --uv-icon-expand );
	mask-image: var( --uv-icon-expand );
}

/*
 * Toate starile pe galben pal. `:active` si `:focus` erau lasate pe culorile
 * native ale temei, de unde flash-ul roz la click.
 */
.uv-dash .uv-collapse:hover,
.uv-dash .uv-collapse:focus,
.uv-dash .uv-collapse:focus-visible,
.uv-dash .uv-collapse:active,
.uv-dash .uv-collapse:focus:not( :focus-visible ) {
	background: var( --uv-accent-soft );
	border-color: var( --uv-accent-line );
	color: var( --uv-accent-text );
}

.uv-dash .uv-collapse:active {
	background: var( --uv-accent );
	border-color: var( --uv-accent );
	color: var( --uv-accent-fg );
}

.uv-auth .uv-social__btn:focus,
.uv-auth .uv-social__btn:focus-visible,
.uv-auth .uv-social__btn:active,
.uv-auth .uv-social__btn:focus:not( :focus-visible ) {
	border-color: var( --uv-accent );
	background: var( --uv-accent-soft );
	color: var( --uv-accent-text );
}

.uv-auth .uv-social__btn:active {
	background: var( --uv-accent-line );
}

/*
 * Player video: fatada e un <button>, deci primea chenarul si padding-ul temei,
 * ceea ce lasa miniatura la o dimensiune gresita pana la click.
 */
.uv-dash .uv-video__facade {
	display: block;
	width: 100%;
	height: 100%;
	/* Kit-ul Elementor impune padding pe butoane cu !important. */
	padding: 0 !important;
	margin: 0;
	border: 0;
	border-radius: 0;
	background: #14120f;
	box-shadow: none;
}

.uv-dash .uv-video__thumb {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
}

/*
 * Antetul: mai compact, cu identitatea userului stransa.
 *
 * `.uv-chip__text` era flex-column. Spatiile albe dintre
 * <span>-uri devin elemente flex anonime, fiecare ocupand un rand intreg de
 * line-height — de aici inaltimea de trei ori mai mare decat continutul.
 * Layout-ul block nu are problema asta.
 */
.uv-dash .uv-chip {
	gap: 10px;
	padding: 5px 5px 5px 14px;
}

/*
 * Pagina de cont trece prin wpautop (filtrarea de continut a temei/Elementor),
 * care transforma fiecare linie noua din template-urile noastre intr-un <br>.
 * Rezultatul erau spatii verticale parazite peste tot — chip-ul din antet avea
 * 103px in loc de 44px. Le ascundem in interfata, dar le pastram in textul
 * scris de tine in lectii, unde <br> e intentionat.
 */
.uv-dash br,
.uv-auth br {
	display: none;
}

.uv-dash .uv-prose br,
.uv-auth .uv-prose br {
	display: revert;
}

/*
 * Acelasi wpautop imbraca si markup-ul inline ramas la radacina in <p>, care
 * primeste marginile de paragraf ale temei. Cardul de utilizator ajungea astfel
 * intr-un <p> de 130px inaltime, in loc de 45. `display: contents` scoate
 * ambalajul din calcul, fara sa atinga continutul.
 */
.uv-dash__header > p,
.uv-section__head > p,
.uv-card__head > p,
.uv-card__foot > p {
	display: contents;
}

.uv-dash p:empty,
.uv-auth p:empty {
	display: none;
}

/* Titlurile noastre nu preiau marginile de heading ale temei. */
.uv-dash .uv-dash__title,
.uv-dash .uv-section__title,
.uv-dash .uv-card__title,
.uv-dash .uv-lesson__title,
.uv-dash .uv-empty__title,
.uv-auth .uv-auth__title {
	margin: 0;
}

.uv-dash .uv-dash__subtitle {
	margin: 3px 0 0;
}

.uv-dash .uv-chip__text {
	display: block;
	line-height: 1.3;
}

.uv-dash .uv-chip__text {
	text-align: right;
}

.uv-dash .uv-chip__name,
.uv-dash .uv-chip__meta {
	display: block;
}

.uv-dash .uv-chip__avatar {
	width: 34px;
	height: 34px;
}

@media ( prefers-reduced-motion: reduce ) {
	.uv-dash,
	.uv-dash *,
	.uv-auth * {
		transition: none;
	}

	.uv-video__facade:hover .uv-video__thumb {
		transform: none;
	}
}
