/* ==========================================================================
   GL Crypto — Componente BrightFunded (glassmorphism + gradient + Netflix grid)
   ========================================================================== */

/* ---------- Cards (glassmorphism) ---------- */
.gl-card {
	background: var(--bg-card);
	backdrop-filter: blur(20px) saturate(1.3);
	-webkit-backdrop-filter: blur(20px) saturate(1.3);
	border: 1px solid var(--border-color);
	border-radius: var(--radius-lg);
	padding: 26px;
	box-shadow: var(--shadow-card);
	position: relative;
	transition: border-color var(--transition-base), transform var(--transition-base), box-shadow var(--transition-base);
}
.gl-card:hover { border-color: var(--border-hover); }

.gl-card-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.gl-card-header h2 { margin: 0; font-size: 18px; font-weight: 600; }

/* ---------- Buttons ---------- */
.gl-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px 22px;
	font-size: 14px;
	font-weight: 600;
	border-radius: var(--radius-sm);
	border: 1px solid transparent;
	cursor: pointer;
	transition: all var(--transition-fast);
	text-decoration: none;
	line-height: 1.2;
	font-family: inherit;
	position: relative;
	overflow: hidden;
}
.gl-btn:active { transform: scale(0.98); }

.gl-btn-primary {
	background: linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));
	color: #ffffff;
	box-shadow: 0 4px 14px rgba(58, 141, 255, 0.4);
}
.gl-btn-primary:hover {
	color: #ffffff;
	transform: translateY(-1px);
	box-shadow: 0 8px 24px rgba(58, 141, 255, 0.55);
}

.gl-btn-gold {
	background: linear-gradient(135deg, #FFD700, #FFA500);
	color: #1a1a1a;
	box-shadow: 0 4px 14px rgba(255, 215, 0, 0.4);
}
.gl-btn-gold:hover {
	color: #1a1a1a;
	transform: translateY(-1px);
	box-shadow: 0 8px 24px rgba(255, 215, 0, 0.55);
}

.gl-btn-outline {
	background: var(--bg-card);
	backdrop-filter: blur(12px);
	color: var(--text-primary);
	border-color: var(--border-color);
}
.gl-btn-outline:hover {
	border-color: var(--accent-primary);
	color: var(--accent-primary);
	background: rgba(58, 141, 255, 0.05);
}

.gl-btn-block { display: flex; width: 100%; }
.gl-btn-sm { padding: 6px 12px; font-size: 12px; }

.gl-spinner {
	width: 14px; height: 14px;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	animation: gl-spin 0.7s linear infinite;
	display: inline-block;
}
@keyframes gl-spin { to { transform: rotate(360deg); } }

/* ---------- Forms ---------- */
.gl-form .gl-field { margin-bottom: 18px; }
.gl-field label {
	display: block;
	margin-bottom: 8px;
	font-size: 12px;
	font-weight: 600;
	color: var(--text-secondary);
	text-transform: uppercase;
	letter-spacing: 0.5px;
}
.gl-field input[type="text"],
.gl-field input[type="email"],
.gl-field input[type="password"],
.gl-field input[type="number"],
.gl-field input[type="url"],
.gl-field select,
.gl-field textarea,
.gl-coupon-input {
	width: 100%;
	padding: 12px 14px;
	background: var(--bg-secondary);
	border: 1px solid var(--border-color);
	color: var(--text-primary);
	border-radius: var(--radius-sm);
	font-size: 14px;
	font-family: inherit;
	transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);
}
.gl-field input:focus, .gl-field select:focus, .gl-field textarea:focus, .gl-coupon-input:focus {
	outline: none;
	border-color: var(--accent-primary);
	box-shadow: 0 0 0 4px rgba(58, 141, 255, 0.18);
	background: var(--bg-tertiary);
}
.gl-field input[readonly] { opacity: 0.7; cursor: not-allowed; }

.gl-readonly-value { padding: 10px 0; color: var(--text-primary); }

.gl-copy-input { display: flex; gap: 8px; }
.gl-copy-input input {
	flex: 1;
	padding: 11px 14px;
	background: var(--bg-secondary);
	border: 1px solid var(--border-color);
	color: var(--text-primary);
	border-radius: var(--radius-sm);
	font-size: 13px;
	font-family: var(--font-mono);
}
.gl-coupon-row { margin: 14px 0; }

/* ---------- Banners ---------- */
.gl-banner {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 16px 20px;
	border-radius: var(--radius-md);
	margin-bottom: 22px;
	border: 1px solid;
	backdrop-filter: blur(12px);
}
.gl-banner-icon { font-size: 18px; flex-shrink: 0; line-height: 1.2; display: inline-flex; align-items: center; }
.gl-banner-msg { flex: 1; font-size: 14px; }
.gl-banner-close { background: transparent; border: 0; color: inherit; font-size: 22px; cursor: pointer; line-height: 1; opacity: 0.6; }
.gl-banner-close:hover { opacity: 1; }

.gl-banner-info { background: rgba(58, 141, 255, 0.06); border-color: rgba(58, 141, 255, 0.3); }
.gl-banner-info .gl-banner-icon { color: var(--accent-primary); }

.gl-banner-success { background: rgba(63, 185, 80, 0.06); border-color: rgba(63, 185, 80, 0.3); }
.gl-banner-success .gl-banner-icon { color: var(--success); }

.gl-banner-error { background: rgba(248, 81, 73, 0.06); border-color: rgba(248, 81, 73, 0.4); }
.gl-banner-error .gl-banner-icon { color: var(--danger); }

.gl-banner-warning { background: rgba(210, 153, 34, 0.06); border-color: rgba(210, 153, 34, 0.3); }
.gl-banner-warning .gl-banner-icon { color: var(--warning); }

.gl-banner-large { padding: 22px 26px; }
.gl-banner-large .gl-banner-icon { font-size: 22px; }

/* ---------- Dashboard subscription card ---------- */
.gl-data-list { margin: 18px 0; padding: 0; }
.gl-data-list > div { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px dashed var(--border-color); }
.gl-data-list > div:last-child { border-bottom: 0; }
.gl-data-list dt { color: var(--text-secondary); font-size: 13px; }
.gl-data-list dd { margin: 0; font-weight: 600; color: var(--text-primary); }

.gl-big-num {
	font-size: 22px;
	color: var(--accent-primary);
	font-family: var(--font-mono);
	font-weight: 700;
}

.gl-progress {
	background: var(--bg-secondary);
	border: 1px solid var(--border-color);
	border-radius: 100px;
	height: 10px;
	overflow: hidden;
	margin: 14px 0 18px;
}
.gl-progress-bar {
	height: 100%;
	background: linear-gradient(90deg, var(--accent-primary), var(--accent-secondary));
	transition: width 0.8s var(--ease-out);
	box-shadow: 0 0 12px var(--accent-glow);
}

/* ---------- Locked overlay ---------- */
.gl-locked-overlay { position: relative; min-height: 240px; }
.gl-locked-blurred { filter: blur(10px); opacity: 0.4; pointer-events: none; }
.gl-locked-content {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 14px;
	text-align: center;
}
.gl-lock-big {
	font-size: 44px;
	color: var(--accent-primary);
	filter: drop-shadow(0 0 16px var(--accent-glow));
}

/* ---------- Promo card cu gradient border ---------- */
.gl-card-promo {
	position: relative;
	background: linear-gradient(180deg, rgba(58, 141, 255, 0.08), rgba(255, 215, 0, 0.04));
	border: 1px solid transparent;
	background-clip: padding-box;
}
.gl-card-promo::before {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: var(--radius-lg);
	padding: 1px;
	background: linear-gradient(135deg, var(--accent-primary), var(--badge-gold));
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	pointer-events: none;
}
.gl-promo-inner { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.gl-promo-inner h3 { margin: 0; font-size: 22px; font-weight: 700; }
.gl-promo-inner p { margin: 0; color: var(--text-secondary); }

.gl-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 5px 12px;
	border-radius: 100px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.5px;
	text-transform: uppercase;
}
.gl-badge-gold {
	background: rgba(255, 215, 0, 0.12);
	color: var(--badge-gold);
	border: 1px solid rgba(255, 215, 0, 0.4);
}

.gl-chip {
	display: inline-flex;
	align-items: center;
	padding: 3px 10px;
	background: rgba(58, 141, 255, 0.1);
	color: var(--accent-primary);
	border: 1px solid rgba(58, 141, 255, 0.3);
	border-radius: 100px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.3px;
}
.gl-chip-accent {
	background: linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));
	color: #ffffff;
	border-color: transparent;
}

/* ---------- 3-up grid ---------- */
.gl-row {
	display: grid;
	gap: 22px;
	margin-bottom: 26px;
}
.gl-row-top { grid-template-columns: 1.4fr 1fr; }
.gl-row-cards-3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 700px) {
	.gl-row-top,
	.gl-row-cards-3 { grid-template-columns: 1fr; }
}

.gl-card-action { display: flex; flex-direction: column; gap: 14px; }
.gl-card-action header { display: flex; align-items: center; gap: 10px; }
.gl-card-action h3 { margin: 0; font-size: 16px; }
.gl-card-action p { margin: 0; color: var(--text-secondary); flex: 1; }
.gl-emoji { font-size: 22px; }

/* ---------- Pricing ---------- */
.gl-pricing-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 26px;
}
@media (max-width: 768px) { .gl-pricing-grid { grid-template-columns: 1fr; } }

.gl-pricing-card { position: relative; padding-top: 36px; }
.gl-pricing-card-gold {
	background: linear-gradient(180deg, rgba(255, 215, 0, 0.04), transparent);
}
.gl-pricing-card-gold::before {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: var(--radius-lg);
	padding: 1px;
	background: linear-gradient(135deg, var(--badge-gold), var(--accent-primary));
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	pointer-events: none;
}
.gl-pricing-badge { position: absolute; top: -13px; left: 50%; transform: translateX(-50%); }
.gl-pricing-header { text-align: center; margin-bottom: 18px; }
.gl-pricing-name { margin: 0; font-size: 22px; font-weight: 600; }
.gl-pricing-price {
	font-size: 36px;
	font-weight: 800;
	background: linear-gradient(135deg, var(--accent-primary), var(--accent-tertiary));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	margin: 10px 0 4px;
	font-family: var(--font-mono);
}
.gl-pricing-card-gold .gl-pricing-price {
	background: linear-gradient(135deg, var(--badge-gold), #FFA500);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.gl-pricing-old { color: var(--text-muted); margin: 0; font-size: 14px; }
.gl-pricing-saving { color: var(--success); font-size: 12px; font-weight: 600; margin: 4px 0 0; }
.gl-pricing-summary { color: var(--text-secondary); margin: 8px 0 0; font-size: 14px; }
.gl-pricing-features { list-style: none; margin: 18px 0; padding: 0; }
.gl-pricing-features li {
	padding: 8px 0;
	color: var(--text-primary);
	font-size: 14px;
	display: flex;
	align-items: center;
	gap: 10px;
	border-bottom: 1px dashed var(--border-color);
}
.gl-pricing-features li:last-child { border-bottom: 0; }
.gl-check {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	border-radius: 6px;
	background: rgba(63, 185, 80, 0.15);
	color: var(--success);
	font-size: 12px;
	flex-shrink: 0;
}

.gl-stripe-mount {
	margin-top: 18px;
	padding: 18px;
	background: var(--bg-tertiary);
	border-radius: var(--radius-sm);
	border: 1px solid var(--border-color);
}

/* ---------- Tables ---------- */
.gl-table-wrap { overflow-x: auto; }
.gl-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.gl-table th, .gl-table td { padding: 12px 14px; text-align: left; border-bottom: 1px solid var(--border-color); }
.gl-table th {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: var(--text-secondary);
	background: var(--bg-tertiary);
	font-weight: 700;
}
.gl-table tbody tr { transition: background var(--transition-fast); }
.gl-table tbody tr:hover { background: rgba(58, 141, 255, 0.04); }

.gl-empty { text-align: center; padding: 32px; color: var(--text-muted); }
.gl-empty-state {
	text-align: center;
	padding: 64px 24px;
	color: var(--text-muted);
}
.gl-empty-state svg { margin: 0 auto 18px; color: var(--accent-primary); opacity: 0.5; }

/* ---------- Stat tiles ---------- */
.gl-stats-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 18px;
	margin-bottom: 26px;
}
.gl-stat-tile {
	background: var(--bg-card);
	backdrop-filter: blur(20px);
	border: 1px solid var(--border-color);
	border-radius: var(--radius-md);
	padding: 22px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	position: relative;
	overflow: hidden;
	transition: border-color var(--transition-base), transform var(--transition-base);
}
.gl-stat-tile:hover { border-color: var(--border-hover); transform: translateY(-2px); }
.gl-stat-tile::after {
	content: '';
	position: absolute;
	top: -1px; right: -1px;
	width: 60px; height: 60px;
	background: radial-gradient(circle, var(--accent-glow), transparent 70%);
	opacity: 0;
	transition: opacity var(--transition-base);
	pointer-events: none;
}
.gl-stat-tile:hover::after { opacity: 1; }
.gl-stat-label { font-size: 11px; color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.7px; font-weight: 600; }
.gl-stat-val {
	font-size: 32px;
	font-weight: 800;
	color: var(--text-primary);
	font-family: var(--font-mono);
	letter-spacing: -0.5px;
}
.gl-stat-success .gl-stat-val { color: var(--success); }
.gl-stat-warning .gl-stat-val { color: var(--warning); }
.gl-stat-accent .gl-stat-val {
	background: linear-gradient(135deg, var(--accent-primary), var(--accent-tertiary));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.gl-stat-link { min-width: 280px; }

/* ---------- Live Chart grid ---------- */
.gl-chart-section { margin-bottom: 40px; }
.gl-section-title {
	font-size: 18px;
	font-weight: 700;
	color: var(--text-primary);
	margin: 0 0 18px;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--border-color);
	position: relative;
}
.gl-section-title::after {
	content: '';
	position: absolute;
	bottom: -1px; left: 0;
	width: 60px; height: 2px;
	background: linear-gradient(90deg, var(--accent-primary), var(--accent-secondary));
}
.gl-section-desc { margin: 0 0 16px; color: var(--text-secondary); font-size: 14px; }
.gl-section-header { margin-bottom: 18px; }
.gl-section-header h2 { margin: 0; }

.gl-chart-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(120px, 150px));
	justify-content: center;
	gap: 12px;
	max-width: calc(9 * 150px + 8 * 12px);
	margin-left: auto;
	margin-right: auto;
}

.gl-chart-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 16px 10px;
	background: var(--bg-card);
	backdrop-filter: blur(16px);
	border: 1px solid var(--border-color);
	border-radius: var(--radius-md);
	color: var(--text-primary);
	font-size: 13px;
	font-weight: 600;
	min-height: 88px;
	text-align: center;
	transition: all var(--transition-base);
	position: relative;
	overflow: hidden;
}
.gl-chart-icon svg { width: 20px; height: 20px; }
@media(max-width:600px){
	.gl-chart-grid { grid-template-columns: repeat(3, 1fr); gap: 8px; }
	.gl-chart-card { padding: 10px 6px; min-height: 74px; font-size: 11.5px; gap: 6px; }
	.gl-chart-icon svg { width: 16px; height: 16px; }
	.gl-chart-desc { font-size: 9.5px; }
}
.gl-chart-card::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(58,141,255,0.08), transparent 60%);
	opacity: 0;
	transition: opacity var(--transition-base);
}
.gl-chart-card:hover {
	border-color: var(--accent-primary);
	color: var(--text-primary);
	transform: translateY(-3px);
	box-shadow: var(--shadow-hover);
}
.gl-chart-card:hover::before { opacity: 1; }
.gl-chart-icon { color: var(--accent-primary); position: relative; z-index: 1; }
.gl-chart-label { position: relative; z-index: 1; font-family: var(--font-mono); }
.gl-chart-desc { color: var(--text-muted); font-size: 11px; font-weight: 400; position: relative; z-index: 1; }

/* ---------- Netflix grid (Video Market) ---------- */
.gl-netflix-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 22px;
}

.gl-video-card {
	background: var(--bg-card);
	backdrop-filter: blur(20px);
	border: 1px solid var(--border-color);
	border-radius: var(--radius-md);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: transform var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base);
}
.gl-video-card:hover {
	transform: translateY(-4px);
	border-color: var(--border-hover);
	box-shadow: var(--shadow-hover);
}

.gl-video-thumb {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	background: var(--bg-secondary);
	border: 0;
	padding: 0;
	cursor: pointer;
	overflow: hidden;
}
.gl-video-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--transition-slow); }
.gl-video-card:hover .gl-video-thumb img { transform: scale(1.06); }
.gl-video-placeholder { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, var(--bg-secondary), var(--bg-tertiary)); }

.gl-play-icon {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: rgba(255, 255, 255, 0.95);
	background: linear-gradient(180deg, transparent 40%, rgba(0, 0, 0, 0.5));
	opacity: 0;
	transition: opacity var(--transition-base);
}
.gl-video-thumb:hover .gl-play-icon { opacity: 1; }
.gl-play-icon svg { filter: drop-shadow(0 0 12px rgba(58, 141, 255, 0.5)); }

.gl-video-duration {
	position: absolute;
	bottom: 8px;
	right: 8px;
	background: rgba(0, 0, 0, 0.75);
	color: #ffffff;
	padding: 3px 8px;
	border-radius: 4px;
	font-size: 11px;
	font-weight: 600;
	font-family: var(--font-mono);
	backdrop-filter: blur(6px);
}

.gl-video-meta { padding: 16px; display: flex; flex-direction: column; gap: 6px; }
.gl-video-date { color: var(--text-muted); font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px; font-weight: 600; }
.gl-video-title { margin: 4px 0; font-size: 15px; font-weight: 700; line-height: 1.35; color: var(--text-primary); }
.gl-video-desc { margin: 0; color: var(--text-secondary); font-size: 13px; line-height: 1.5; }

/* ---------- Lightbox ---------- */
.gl-lightbox { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 20px; }
.gl-lightbox-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(6, 8, 20, 0.9);
	backdrop-filter: blur(8px);
	cursor: pointer;
}
.gl-lightbox-content {
	position: relative;
	width: min(95vw, 1000px);
	background: var(--bg-card-solid);
	border-radius: var(--radius-lg);
	padding: 22px;
	z-index: 1;
	border: 1px solid var(--border-color);
}
.gl-lightbox-close {
	position: absolute;
	top: -42px;
	right: 0;
	background: transparent;
	border: 0;
	color: #ffffff;
	font-size: 32px;
	cursor: pointer;
	line-height: 1;
}
.gl-lightbox-player iframe { width: 100%; aspect-ratio: 16/9; border: 0; border-radius: var(--radius-sm); }

/* ---------- List grid (Zoom) ---------- */
.gl-list-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 22px;
}
.gl-list-card {
	background: var(--bg-card);
	backdrop-filter: blur(20px);
	border: 1px solid var(--border-color);
	border-radius: var(--radius-md);
	overflow: hidden;
	transition: transform var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base);
}
.gl-list-card:hover { transform: translateY(-3px); border-color: var(--border-hover); box-shadow: var(--shadow-hover); }
.gl-list-meta { padding: 16px; display: flex; flex-direction: column; gap: 6px; }
.gl-list-title { margin: 4px 0; font-size: 16px; font-weight: 700; }
.gl-list-date { color: var(--text-muted); font-size: 12px; font-family: var(--font-mono); }
.gl-list-desc { margin: 4px 0 0; color: var(--text-secondary); font-size: 13px; line-height: 1.5; }

/* ---------- Resources ---------- */
.gl-resource-section { margin-bottom: 36px; }
.gl-resource-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 18px;
}
.gl-resource-card {
	background: var(--bg-card);
	backdrop-filter: blur(20px);
	border: 1px solid var(--border-color);
	border-radius: var(--radius-md);
	padding: 22px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	transition: transform var(--transition-base), border-color var(--transition-base);
}
.gl-resource-card:hover { transform: translateY(-2px); border-color: var(--border-hover); }
.gl-resource-icon {
	font-size: 26px;
	width: 48px;
	height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, rgba(58,141,255,0.15), rgba(108,92,255,0.05));
	border-radius: var(--radius-sm);
}
.gl-resource-title { margin: 0; font-size: 16px; font-weight: 700; }
.gl-resource-desc { color: var(--text-secondary); font-size: 13px; line-height: 1.6; flex: 1; }
.gl-resource-desc p { margin: 0; }

/* ---------- Macro Analysis ---------- */
.gl-macro-featured {
	display: grid;
	grid-template-columns: 1.2fr 1fr;
	gap: 24px;
	margin-bottom: 36px;
	background: var(--bg-card);
	backdrop-filter: blur(20px);
	border: 1px solid var(--border-color);
	border-radius: var(--radius-lg);
	overflow: hidden;
	transition: border-color var(--transition-base);
}
.gl-macro-featured:hover { border-color: var(--border-hover); }
.gl-macro-featured-thumb { display: block; overflow: hidden; aspect-ratio: 16 / 10; }
.gl-macro-featured-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--transition-slow); }
.gl-macro-featured:hover .gl-macro-featured-thumb img { transform: scale(1.05); }
.gl-macro-featured-body { padding: 30px; display: flex; flex-direction: column; gap: 12px; justify-content: center; }
.gl-macro-featured-body h2 { margin: 0; font-size: 24px; line-height: 1.25; }
.gl-macro-featured-body h2 a { color: var(--text-primary); }
.gl-macro-featured-body h2 a:hover { color: var(--accent-primary); }
@media (max-width: 768px) { .gl-macro-featured { grid-template-columns: 1fr; } }

.gl-macro-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 22px; }
.gl-macro-card {
	background: var(--bg-card);
	backdrop-filter: blur(20px);
	border: 1px solid var(--border-color);
	border-radius: var(--radius-md);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: transform var(--transition-base), border-color var(--transition-base);
}
.gl-macro-card:hover { transform: translateY(-3px); border-color: var(--border-hover); }
.gl-macro-card-thumb { aspect-ratio: 16 / 10; overflow: hidden; }
.gl-macro-card-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--transition-slow); }
.gl-macro-card:hover .gl-macro-card-thumb img { transform: scale(1.06); }
.gl-macro-card-body { padding: 18px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.gl-macro-card-body h3 { margin: 0; font-size: 16px; line-height: 1.3; }
.gl-macro-card-body h3 a { color: var(--text-primary); }
.gl-macro-card-body h3 a:hover { color: var(--accent-primary); }
.gl-post-date { color: var(--text-muted); font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px; font-weight: 600; }
.gl-category-intro {
	background: var(--bg-card);
	backdrop-filter: blur(12px);
	border: 1px solid var(--border-color);
	border-radius: var(--radius-md);
	padding: 18px 22px;
	margin-bottom: 24px;
	color: var(--text-secondary);
}

/* ---------- Pagination ---------- */
.gl-pagination {
	display: flex;
	justify-content: center;
	gap: 6px;
	margin-top: 32px;
}
.gl-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	background: var(--bg-card);
	backdrop-filter: blur(12px);
	border: 1px solid var(--border-color);
	color: var(--text-secondary);
	border-radius: var(--radius-sm);
	font-weight: 600;
	transition: all var(--transition-fast);
}
.gl-pagination .page-numbers:hover { border-color: var(--accent-primary); color: var(--text-primary); }
.gl-pagination .page-numbers.current {
	background: linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));
	color: #ffffff;
	border-color: transparent;
}

/* ---------- FAQ ---------- */
.gl-faq { border-bottom: 1px solid var(--border-color); padding: 14px 0; }
.gl-faq[open] summary { color: var(--accent-primary); }
.gl-faq summary { cursor: pointer; font-weight: 600; padding: 6px 0; }
.gl-faq p { margin: 10px 0 0; color: var(--text-secondary); line-height: 1.6; }

/* ---------- Search row (admin) ---------- */
.gl-search-row { display: flex; gap: 10px; margin-bottom: 20px; }
.gl-search-row input {
	flex: 1;
	padding: 12px 14px;
	background: var(--bg-secondary);
	border: 1px solid var(--border-color);
	color: var(--text-primary);
	border-radius: var(--radius-sm);
}

/* ---------- Vimeo locked state ---------- */
.gl-vimeo-locked {
	background: var(--bg-card);
	backdrop-filter: blur(20px);
	border: 1px dashed var(--border-color);
	border-radius: var(--radius-md);
	padding: 40px;
	text-align: center;
	color: var(--text-secondary);
}
.gl-lock-icon { font-size: 32px; margin-right: 10px; color: var(--accent-primary); }

/* ---------- Skeleton loaders ---------- */
@keyframes gl-skeleton-shimmer {
	0% { background-position: -200% 0; }
	100% { background-position: 200% 0; }
}
.gl-skeleton {
	background: linear-gradient(90deg, var(--bg-secondary) 0%, var(--bg-tertiary) 50%, var(--bg-secondary) 100%);
	background-size: 200% 100%;
	animation: gl-skeleton-shimmer 1.4s linear infinite;
	border-radius: var(--radius-sm);
}

/* (devtools-open blur removed — overlay div from anti-inspect.js is sufficient) */

/* ---------- [hidden] attribute fix ---------- */
/* `display: flex` pe .gl-lightbox/.gl-banner override default UA `[hidden] { display: none }`.
   Forțăm hidden să funcționeze pe elementele noastre. */
[hidden] { display: none !important; }

/* ---------- Fade-in animation pe load ---------- */
.gl-page {
	animation: gl-fade-up 400ms var(--ease-out);
}
@keyframes gl-fade-up {
	from { opacity: 0; transform: translateY(8px); }
	to   { opacity: 1; transform: translateY(0); }
}



/* ---------- Subscription card extras (payment type, dates, note) ---------- */
.gl-progress-dates {
	display: flex;
	justify-content: space-between;
	margin-top: -10px;
	margin-bottom: 18px;
	font-size: 12px;
	color: var(--text-muted);
	font-family: var(--font-mono);
}

.gl-sub-note {
	margin: 0 0 18px;
	font-size: 13px;
	line-height: 1.5;
	color: var(--text-secondary);
}

/* ---------- Weekly schedule card ---------- */
.gl-row-schedule { grid-template-columns: 1fr; }

.gl-schedule-header { margin-bottom: 18px; }
.gl-schedule-tz {
	font-size: 12px;
	color: var(--text-muted);
	font-family: var(--font-mono);
}

.gl-schedule-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 10px;
}

.gl-schedule-col {
	background: var(--bg-secondary);
	border: 1px solid var(--border-color);
	border-radius: var(--radius-md);
	padding: 12px 10px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-height: 100px;
	transition: border-color var(--transition-base);
}
.gl-schedule-col.is-today {
	border-color: var(--accent-primary);
	background: rgba(58, 141, 255, 0.08);
	box-shadow: 0 0 0 1px var(--accent-primary), 0 0 16px var(--accent-glow);
}
.gl-schedule-col.is-dashed { border-style: dashed; }

.gl-schedule-day-label {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.5px;
	color: var(--text-secondary);
}
.gl-schedule-col.is-today .gl-schedule-day-label { color: var(--accent-primary); }

.gl-schedule-item {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding-left: 8px;
	border-left: 2px solid var(--border-color);
}
.gl-schedule-item--telegram { border-left-color: var(--accent-tertiary); }
.gl-schedule-item--video { border-left-color: var(--accent-secondary); }
.gl-schedule-item--zoom { border-left-color: var(--success); }

.gl-schedule-time {
	font-size: 11px;
	font-family: var(--font-mono);
	color: var(--text-muted);
}
.gl-schedule-label {
	font-size: 12px;
	color: var(--text-primary);
	line-height: 1.3;
}

.gl-schedule-legend {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px dashed var(--border-color);
	font-size: 12px;
	color: var(--text-secondary);
}
.gl-schedule-legend span { display: inline-flex; align-items: center; gap: 6px; }
.gl-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	display: inline-block;
	font-style: normal;
}
.gl-dot--telegram { background: var(--accent-tertiary); }
.gl-dot--video { background: var(--accent-secondary); }
.gl-dot--zoom { background: var(--success); }
.gl-schedule-note { color: var(--text-muted); font-size: 11px; }

@media (max-width: 900px) {
	.gl-schedule-grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 600px) {
	.gl-schedule-grid { grid-template-columns: repeat(2, 1fr); }
}

.gl-pf-note { margin-top: 6px; font-size: 12px; color: var(--text-muted); line-height: 1.6; }

.gl-resources-disclosure{background:var(--bg-card);border-left:3px solid var(--accent-primary);border-radius:var(--radius-md);padding:20px 24px;margin:0 0 30px;}
.gl-resources-disclosure p{color:var(--text-secondary);font-size:13.5px;line-height:1.7;margin:0 0 12px;}
.gl-resources-disclosure p:last-child{margin-bottom:0;}
.gl-resources-disclosure strong{color:var(--text-primary);}

/* ---------- Nota (disclaimer) sub video in lightbox ---------- */
/* Modalul scrolleaza ca intreg: un scroll imbricat pe disclaimer ascundea
   jumatate din text pe mobil. */
.gl-lightbox-content{max-height:92vh; overflow-y:auto}
.gl-lightbox-note{
  margin-top:18px; padding:16px 18px; border-radius:10px;
  background:rgba(255,176,32,.08); border:1px solid rgba(255,176,32,.3);
  font-size:14px; line-height:1.7;
}
.gl-lightbox-note p{margin:0 0 10px}
.gl-lightbox-note p:last-child{margin-bottom:0}
.gl-lightbox-note a{color:var(--gl-accent,#f7931a); text-decoration:underline}
.gl-lightbox-note img.emoji{width:1.1em;height:1.1em;vertical-align:-.15em}
.gl-note-source{display:none}
.gl-play-video{cursor:pointer}
.gl-play-video svg{margin-left:6px; vertical-align:-2px}
