/* ============================================================
   NOVA THEME — Design System
   A premium LeaderOS theme with glassmorphism & modern design
   ============================================================ */

/* ---------- FONTS ---------- */
@import url('https://fonts.googleapis.com/css2?family=Fredoka:wght@400;500;600;700&family=Inter:wght@300;400;500;600;700;800;900&display=swap');

/* ---------- CSS CUSTOM PROPERTIES ---------- */
:root {
	--nova-font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	--nova-font-display: 'Fredoka', 'Inter', sans-serif;

	--nova-primary: var(--tblr-primary, #F59E0B);
	--nova-accent: #10B981;
	--nova-success: #22C55E;
	--nova-warning: #F59E0B;
	--nova-danger: #EF4444;
	--nova-info: #3B82F6;

	--nova-sun-50: #FFFBEB;
	--nova-sun-100: #FEF3C7;
	--nova-sun-200: #FDE68A;
	--nova-sun-300: #FCD34D;
	--nova-sun-400: #FBBF24;
	--nova-sun-500: #F59E0B;
	--nova-sun-600: #D97706;
	--nova-sun-700: #B45309;

	--nova-gem-400: #A78BFA;
	--nova-gem-500: #8B5CF6;
	--nova-gem-600: #7C3AED;

	--nova-radius-sm: 8px;
	--nova-radius-md: 10px;
	--nova-radius-lg: 14px;
	--nova-radius-xl: 16px;
	--nova-radius-pill: 50px;

	--nova-shadow-sm: 0 2px 8px rgba(20, 18, 15, 0.06);
	--nova-shadow-md: 0 4px 14px rgba(20, 18, 15, 0.08);
	--nova-shadow-lg: 0 8px 28px rgba(20, 18, 15, 0.12);
	--nova-shadow-xl: 0 14px 40px rgba(20, 18, 15, 0.16);
	--nova-shadow-glow: 0 4px 18px rgba(245, 158, 11, 0.35);

	--nova-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	--nova-transition-fast: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
	--nova-transition-slow: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);

	--nova-sidebar-width: 280px;
}

/* --- LIGHT MODE --- */
[data-bs-theme="light"] {
	--nova-bg-body: #FAF9F7;
	--nova-bg-surface: #FFFFFF;
	--nova-bg-surface-hover: #F5F3F0;
	--nova-bg-sidebar: #FFFFFF;
	--nova-bg-glass: rgba(255, 255, 255, 0.72);
	--nova-bg-glass-strong: rgba(255, 255, 255, 0.88);
	--nova-bg-topbar: rgba(255, 255, 255, 0.82);
	--nova-border: rgba(20, 18, 15, 0.07);
	--nova-border-strong: rgba(20, 18, 15, 0.12);
	--nova-text-primary: #14120F;
	--nova-text-secondary: #6B6560;
	--nova-text-muted: #9C9590;
	--nova-text-on-primary: #FFFFFF;
	--nova-nav-chip: rgba(20, 18, 15, 0.04);
	--nova-nav-active: rgba(245, 158, 11, 0.1);
	--nova-input-bg: #F5F3F0;
	--nova-hero-wash: linear-gradient(135deg, rgba(255, 255, 255, 0.55) 0%, rgba(255, 255, 255, 0.15) 100%);
	--nova-featured-grad: linear-gradient(135deg, rgba(245, 158, 11, 0.06) 0%, rgba(245, 158, 11, 0.02) 100%);
	--nova-supporters-bg: rgba(245, 158, 11, 0.035);
}

/* --- DARK MODE --- */
[data-bs-theme="dark"] {
	--nova-bg-body: #0E0D0B;
	--nova-bg-surface: #1A1816;
	--nova-bg-surface-hover: #221F1C;
	--nova-bg-sidebar: #141210;
	--nova-bg-glass: rgba(26, 24, 22, 0.72);
	--nova-bg-glass-strong: rgba(26, 24, 22, 0.88);
	--nova-bg-topbar: rgba(14, 13, 11, 0.82);
	--nova-border: rgba(255, 255, 255, 0.06);
	--nova-border-strong: rgba(255, 255, 255, 0.1);
	--nova-text-primary: #F5F0EB;
	--nova-text-secondary: #8B8580;
	--nova-text-muted: #5C5550;
	--nova-text-on-primary: #FFFFFF;
	--nova-nav-chip: rgba(255, 255, 255, 0.04);
	--nova-nav-active: rgba(245, 158, 11, 0.12);
	--nova-input-bg: #221F1C;
	--nova-hero-wash: linear-gradient(135deg, rgba(14, 13, 11, 0.6) 0%, rgba(14, 13, 11, 0.25) 100%);
	--nova-featured-grad: linear-gradient(135deg, rgba(245, 158, 11, 0.08) 0%, rgba(245, 158, 11, 0.03) 100%);
	--nova-supporters-bg: rgba(245, 158, 11, 0.04);
}


/* ---------- BASE RESETS ---------- */
*,
*::before,
*::after {
	box-sizing: border-box;
}

body {
	font-family: var(--nova-font-body);
	font-feature-settings: "cv03", "cv04", "cv11";
	background-color: var(--nova-bg-body);
	color: var(--nova-text-primary);
	margin: 0;
	padding: 0;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

a {
	color: var(--nova-primary);
	text-decoration: none;
	transition: var(--nova-transition-fast);
}

a:hover {
	color: var(--nova-primary);
	filter: brightness(1.2);
	text-decoration: none;
}

ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

img {
	max-width: 100%;
	height: auto;
}

[x-cloak] {
	display: none !important;
}

/* ---------- TYPOGRAPHY ---------- */
.nova-display {
	font-family: var(--nova-font-display);
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--nova-font-display);
	font-weight: 700;
}

.page-title {
	font-family: var(--nova-font-display);
	font-size: 22px;
	font-weight: 700;
	letter-spacing: -0.01em;
	color: var(--nova-text-primary);
}

/* ---------- LAYOUT: SITE WRAPPER ---------- */
.nova-site {
	display: flex;
	min-height: 100vh;
}

/* ---------- SIDEBAR ---------- */
.nova-sidebar {
	position: fixed;
	top: 0;
	left: 0;
	width: var(--nova-sidebar-width);
	height: 100vh;
	background: var(--nova-bg-sidebar);
	border-right: 1px solid var(--nova-border);
	display: flex;
	flex-direction: column;
	padding: 20px 16px;
	z-index: 100;
	overflow-y: auto;
	transition: var(--nova-transition);
}

.nova-sidebar::-webkit-scrollbar {
	width: 4px;
}

.nova-sidebar::-webkit-scrollbar-thumb {
	background: var(--nova-border-strong);
	border-radius: 4px;
}

.nova-sidebar-brand {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 8px;
	margin-bottom: 20px;
}

.nova-sidebar-brand img {
	max-height: 48px;
	width: auto;
	transition: var(--nova-transition);
}

.nova-sidebar-brand:hover img {
	transform: scale(1.05);
}

.nova-nav-label {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--nova-text-muted);
	padding: 0 12px;
	margin-bottom: 8px;
	margin-top: 20px;
}

.nova-nav-label:first-of-type {
	margin-top: 0;
}

/* Collapsible account toggle */
.nova-account-toggle {
	background: none;
	border: none;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	cursor: pointer;
	font-family: inherit;
	padding: 0 12px;
}

.nova-account-toggle i {
	font-size: 14px;
	color: var(--nova-text-muted);
	transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.nova-account-toggle[aria-expanded="true"] i {
	transform: rotate(180deg);
}

.nova-account-collapse {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.nova-account-collapse > nav {
	overflow: hidden;
	min-height: 0;
}

.nova-account-collapse.open {
	grid-template-rows: 1fr;
}

.nova-nav {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.nova-nav-link {
	display: flex;
	align-items: center;
	gap: 12px;
	height: 42px;
	padding: 0 12px;
	border-radius: var(--nova-radius-md);
	font-size: 14px;
	font-weight: 500;
	color: var(--nova-text-secondary);
	transition: var(--nova-transition-fast);
	text-decoration: none !important;
	position: relative;
}

.nova-nav-link:hover {
	background: var(--nova-nav-chip);
	color: var(--nova-text-primary);
	filter: none;
}

.nova-nav-link.active {
	background: var(--nova-nav-active);
	color: var(--nova-sun-600);
	font-weight: 600;
}

.nova-nav-link .nova-nav-icon {
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--nova-radius-sm);
	background: var(--nova-nav-chip);
	flex-shrink: 0;
	font-size: 16px;
}

.nova-nav-link.active .nova-nav-icon {
	background: var(--nova-nav-active);
}

/* ---------- 3D CHARACTER ---------- */
.nova-char-wrap {
	position: relative;
	width: 150px;
	height: 178px;
	margin-left: -20px;
	margin-bottom: -30px;
}

.nova-char-wrap img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: bottom;
	pointer-events: none;
	filter: drop-shadow(0 10px 16px rgba(20, 18, 15, 0.16));
}

.nova-char-wrap canvas {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	cursor: pointer;
	opacity: 0;
	transition: opacity 0.5s;
}

.nova-nav-link .nav-badge {
	margin-left: auto;
	font-size: 11px;
	font-weight: 700;
	padding: 2px 8px;
	border-radius: var(--nova-radius-pill);
	background: var(--nova-primary);
	color: var(--nova-text-on-primary);
}

/* Sidebar bottom section */
.nova-sidebar-footer {
	margin-top: auto;
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding-top: 16px;
}

.nova-user-card {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px;
	border-radius: var(--nova-radius-md);
	border: 1px solid var(--nova-border);
	text-decoration: none !important;
	transition: var(--nova-transition-fast);
}

.nova-user-card:hover {
	border-color: var(--nova-border-strong);
	background: var(--nova-bg-surface-hover);
	filter: none;
}

.nova-user-card .nova-avatar {
	width: 36px;
	height: 36px;
	border-radius: var(--nova-radius-sm);
	object-fit: cover;
	flex-shrink: 0;
}

.nova-user-card .nova-user-info {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.nova-user-card .nova-user-name {
	font-size: 13px;
	font-weight: 600;
	color: var(--nova-text-primary);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.nova-user-card .nova-user-role {
	font-size: 11px;
	color: var(--nova-text-muted);
}

/* ---------- MAIN CONTENT ---------- */
.nova-main {
	flex: 1;
	margin-left: var(--nova-sidebar-width);
	min-width: 0;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

.nova-content {
	flex: 1;
	padding: 40px 50px;
}

/* ---------- TOPBAR (mobile) ---------- */
.nova-topbar {
	display: none;
	position: sticky;
	top: 0;
	z-index: 90;
	height: 56px;
	padding: 0 16px;
	background: var(--nova-bg-topbar);
	backdrop-filter: blur(14px) saturate(150%);
	-webkit-backdrop-filter: blur(14px) saturate(150%);
	border-bottom: 1px solid var(--nova-border);
	align-items: center;
	gap: 10px;
}

.nova-topbar-brand img {
	height: 32px;
	width: auto;
}

.nova-topbar-toggle {
	background: none;
	border: none;
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--nova-radius-sm);
	color: var(--nova-text-primary);
	cursor: pointer;
	transition: var(--nova-transition-fast);
}

.nova-topbar-toggle:hover {
	background: var(--nova-nav-chip);
}

/* ---------- GLASS CARDS ---------- */
.nova-glass {
	background: var(--nova-bg-glass);
	backdrop-filter: blur(12px) saturate(140%);
	-webkit-backdrop-filter: blur(12px) saturate(140%);
	border: 1px solid var(--nova-border);
	border-radius: var(--nova-radius-lg);
}

.nova-glass-strong {
	background: var(--nova-bg-glass-strong);
	backdrop-filter: blur(16px) saturate(160%);
	-webkit-backdrop-filter: blur(16px) saturate(160%);
	border: 1px solid var(--nova-border);
	border-radius: var(--nova-radius-lg);
}

/* ---------- TABLER CARD OVERRIDES ---------- */
.card {
	--tblr-card-border-radius: var(--nova-radius-lg);
	background: var(--nova-bg-surface);
	border: 1px solid var(--nova-border);
	box-shadow: var(--nova-shadow-sm);
	margin-bottom: 1rem;
	transition: var(--nova-transition);
}

.card:hover {
	box-shadow: var(--nova-shadow-md);
}

.card-header {
	padding-top: 1rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--nova-border);
}

/* ---------- HERO SECTION ---------- */
.nova-hero {
	position: relative;
	border-radius: var(--nova-radius-xl);
	overflow: hidden;
	min-height: 320px;
	display: flex;
	align-items: center;
	padding: 40px;
	margin-bottom: 32px;
}

.nova-hero-bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center 40%;
	filter: blur(2px);
	transform: scale(1.05);
}

.nova-hero-overlay {
	position: absolute;
	inset: 0;
	background: var(--nova-hero-wash);
}

.nova-hero-content {
	position: relative;
	z-index: 2;
	max-width: 580px;
}

.nova-hero-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--nova-sun-500);
	margin-bottom: 12px;
}

.nova-hero-title {
	font-family: var(--nova-font-display);
	font-size: 28px;
	font-weight: 800;
	line-height: 1.18;
	margin: 0 0 10px 0;
}

.nova-hero-desc {
	font-size: 15px;
	line-height: 1.6;
	color: var(--nova-text-secondary);
	margin-bottom: 20px;
	max-width: 440px;
}

/* ---------- BUTTONS ---------- */
.nova-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	height: 44px;
	padding: 0 24px;
	font-family: var(--nova-font-display);
	font-size: 14px;
	font-weight: 600;
	border: none;
	border-radius: 8px;
	cursor: pointer;
	transition: var(--nova-transition);
	text-decoration: none !important;
	white-space: nowrap;
}

.nova-btn:hover {
	filter: brightness(1.1);
	transform: translateY(-1px);
}

.nova-btn:active {
	transform: translateY(0);
}

.nova-btn-primary {
	background: var(--nova-primary, var(--nova-sun-500));
	color: var(--nova-text-on-primary, #fff);
	border: 2px solid var(--nova-sun-700);
	box-shadow: 0 3px 0 var(--nova-sun-700);
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.nova-btn-primary:visited,
.nova-btn-primary:focus,
.nova-btn-primary:active {
	color: var(--nova-text-on-primary);
}

.nova-btn-primary:hover {
	filter: brightness(1.05);
	color: var(--nova-text-on-primary);
	transform: translateY(-1px);
	box-shadow: 0 4px 0 var(--nova-sun-700);
}

.nova-btn-primary:active {
	transform: translateY(2px);
	box-shadow: 0 1px 0 var(--nova-sun-700);
}

/* Blurple Discord button */
.nova-btn-discord {
	background: #5865F2;
	border: 2px solid #4752C4;
	color: #fff;
	box-shadow: 0 3px 0 #4752C4;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.nova-btn-discord i {
	color: #fff;
}

.nova-btn-discord:hover {
	background: #4752C4;
	color: #fff;
	filter: none;
	transform: translateY(-1px);
	box-shadow: 0 4px 0 #3C45A5;
}

.nova-btn-discord:active {
	transform: translateY(2px);
	box-shadow: 0 1px 0 #4752C4;
}

.nova-btn-accent {
	background: var(--nova-accent);
	color: #000;
}

.nova-btn-outline {
	background: transparent;
	border: 1px solid var(--nova-border-strong);
	color: var(--nova-text-primary);
}

.nova-btn-outline:hover {
	background: var(--nova-bg-surface-hover);
	color: var(--nova-text-primary);
}

/* ---------- IP COPY PILL ---------- */
.nova-ip-pill {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	height: 48px;
	padding: 0 16px;
	border-radius: var(--nova-radius-md);
	border: 1px solid var(--nova-border);
	background: var(--nova-bg-glass);
	backdrop-filter: blur(8px);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	transition: var(--nova-transition-fast);
	color: var(--nova-text-primary);
}

.nova-ip-pill:hover {
	border-color: var(--nova-border-strong);
	background: var(--nova-bg-glass-strong);
}

.nova-ip-pill .dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--nova-success);
	animation: nova-pulse 2s ease-in-out infinite;
}

.nova-ip-pill .divider {
	width: 1px;
	height: 20px;
	background: var(--nova-border-strong);
}

@keyframes nova-pulse {

	0%,
	100% {
		opacity: 1;
	}

	50% {
		opacity: 0.4;
	}
}

/* ---------- STORE CARDS ---------- */
.nova-store-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 20px;
}

.nova-product-card {
	background: var(--nova-bg-surface);
	border: 1px solid var(--nova-border);
	border-radius: var(--nova-radius-lg);
	overflow: hidden;
	transition: var(--nova-transition);
	display: flex;
	flex-direction: column;
	position: relative;
}

.nova-product-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--nova-shadow-lg);
	border-color: var(--nova-border-strong);
}

.nova-product-card .product-img {
	width: 100%;
	aspect-ratio: 4/3;
	object-fit: cover;
}

.nova-product-card .product-body {
	padding: 16px;
	display: flex;
	flex-direction: column;
	flex: 1;
}

.nova-product-card .product-name {
	font-family: var(--nova-font-display);
	font-size: 16px;
	font-weight: 600;
	margin-bottom: 6px;
	color: var(--nova-text-primary);
}

.nova-product-card .product-price {
	font-size: 18px;
	font-weight: 800;
	color: var(--nova-text-primary);
}

.nova-product-card .product-old-price {
	font-size: 14px;
	font-weight: 600;
	color: var(--nova-danger);
	text-decoration: line-through;
	margin-right: 4px;
}

.nova-product-card .product-actions {
	margin-top: auto;
	padding-top: 12px;
}

.nova-product-card .product-discount {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	font-weight: 700;
	color: #fff;
	background: var(--nova-primary);
	border-radius: 50%;
	z-index: 2;
	box-shadow: var(--nova-shadow-md);
}

.nova-product-card .product-stock {
	position: absolute;
	top: 12px;
	left: 12px;
	padding: 4px 10px;
	font-size: 11px;
	font-weight: 700;
	color: #fff;
	border-radius: var(--nova-radius-sm);
	z-index: 2;
}

.nova-product-card .product-stock.in-stock {
	background: var(--nova-warning);
	color: #333;
}

.nova-product-card .product-stock.out-of-stock {
	background: var(--nova-danger);
}

/* ---------- CATEGORY TILES ---------- */
.nova-category-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 20px;
}

.nova-category-tile {
	background: var(--nova-bg-surface);
	border: 1px solid var(--nova-border);
	border-radius: var(--nova-radius-xl);
	overflow: hidden;
	transition: var(--nova-transition);
	text-decoration: none !important;
}

.nova-category-tile:hover {
	transform: translateY(-3px);
	box-shadow: var(--nova-shadow-lg);
	border-color: var(--nova-border-strong);
	filter: none;
}

.nova-category-tile img {
	width: 100%;
	aspect-ratio: 16/9;
	object-fit: cover;
}

.nova-category-tile .tile-body {
	padding: 16px 20px;
}

.nova-category-tile .tile-title {
	font-family: var(--nova-font-display);
	font-size: 18px;
	font-weight: 600;
	color: var(--nova-text-primary);
}

/* ---------- SUPPORTER TILES ---------- */
.nova-supporter-card {
	background: var(--nova-bg-surface);
	border: 1px solid var(--nova-border);
	border-radius: var(--nova-radius-md);
	padding: 10px 12px;
	display: flex;
	align-items: center;
	gap: 10px;
	transition: var(--nova-transition-fast);
}

.nova-supporter-card:hover {
	border-color: var(--nova-border-strong);
}

.nova-supporter-card .supporter-avatar {
	width: 36px;
	height: 36px;
	border-radius: var(--nova-radius-sm);
	object-fit: cover;
	flex-shrink: 0;
}

.nova-supporter-card .supporter-name {
	font-size: 13px;
	font-weight: 600;
	color: var(--nova-text-primary);
}

.nova-supporter-card .supporter-detail {
	font-size: 12px;
	color: var(--nova-text-muted);
}

/* ---------- BREADCRUMB ---------- */
.nova-breadcrumb {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 12px 16px;
	background: var(--nova-bg-surface);
	border: 1px solid var(--nova-border);
	border-radius: var(--nova-radius-md);
	font-size: 13px;
	margin-bottom: 12px;
}

.nova-breadcrumb a {
	color: var(--nova-text-secondary);
	font-weight: 500;
}

.nova-breadcrumb a:hover {
	color: var(--nova-primary);
}

.nova-breadcrumb .separator {
	color: var(--nova-text-muted);
}

.nova-breadcrumb .current {
	color: var(--nova-text-muted);
	font-weight: 400;
}

/* ---------- ALERTS ---------- */
.nova-alert {
	padding: 12px 16px;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 600;
	color: #fff;
	border: 2px solid transparent;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.nova-alert.alert-success {
	background-color: var(--nova-success);
	border-color: #15803D;
	box-shadow: 0 3px 0 #15803D;
}

.nova-alert.alert-danger {
	background-color: var(--nova-danger);
	border-color: #B91C1C;
	box-shadow: 0 3px 0 #B91C1C;
}

.nova-alert.alert-warning {
	background-color: var(--nova-warning);
	border-color: var(--nova-sun-700);
	box-shadow: 0 3px 0 var(--nova-sun-700);
}

.nova-alert.alert-info {
	background-color: var(--nova-info);
	border-color: #1D4ED8;
	box-shadow: 0 3px 0 #1D4ED8;
}

/* ---------- SECTION ---------- */
.nova-section {
	margin-bottom: 32px;
}

.nova-section-title {
	font-family: var(--nova-font-display);
	font-size: 22px;
	font-weight: 700;
	letter-spacing: -0.01em;
	margin-bottom: 16px;
}

/* ---------- FOOTER ---------- */
.nova-footer {
	padding: 24px 50px;
	border-top: 1px solid var(--nova-border);
	color: var(--nova-text-secondary);
	font-size: 13px;
}

.nova-footer a {
	color: var(--nova-text-secondary);
	font-weight: 500;
}

.nova-footer a:hover {
	color: var(--nova-text-primary);
}

/* ---------- THEME TOGGLE ---------- */
.nova-theme-toggle {
	display: inline-flex;
	align-items: center;
	gap: 2px;
	padding: 2px;
	border-radius: 8px;
	border: 1px solid var(--nova-border);
	background: var(--nova-bg-surface);
}

.nova-theme-opt {
	width: 30px;
	height: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 6px;
	border: none;
	background: transparent;
	color: var(--nova-text-muted);
	cursor: pointer;
	transition: var(--nova-transition-fast);
}

.nova-theme-opt:hover {
	color: var(--nova-text-primary);
}

.nova-theme-opt[aria-pressed="true"] {
	background: var(--nova-nav-active);
	color: var(--nova-primary);
}

.nova-theme-opt svg {
	width: 16px;
	height: 16px;
}

/* ---------- AUTH LAYOUT ---------- */
.nova-auth-layout {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 100vh;
	padding: 24px;
}

.nova-auth-container {
	width: 100%;
	max-width: 420px;
}

.nova-auth-logo {
	text-align: center;
	margin-bottom: 24px;
}

.nova-auth-logo img {
	max-height: 64px;
}

.nova-auth-card {
	background: var(--nova-bg-surface);
	border: 1px solid var(--nova-border);
	border-radius: var(--nova-radius-xl);
	box-shadow: var(--nova-shadow-lg);
	padding: 32px;
}

.nova-auth-card h2 {
	font-family: var(--nova-font-display);
	font-size: 22px;
	font-weight: 700;
	text-align: center;
	margin-bottom: 4px;
}

.nova-auth-card .auth-subtitle {
	font-size: 14px;
	color: var(--nova-text-muted);
	text-align: center;
	margin-bottom: 28px;
}

/* ---------- FORMS ---------- */
.nova-form-label {
	font-size: 13px;
	font-weight: 600;
	color: var(--nova-text-primary);
	margin-bottom: 6px;
	display: block;
}

.nova-form-control {
	width: 100%;
	height: 44px;
	padding: 0 14px;
	font-size: 14px;
	border: 1px solid var(--nova-border);
	border-radius: var(--nova-radius-md);
	background: var(--nova-input-bg);
	color: var(--nova-text-primary);
	transition: var(--nova-transition-fast);
}

.nova-form-control:focus {
	outline: none;
	border-color: var(--nova-primary);
	box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.15);
}

/* ---------- DROPDOWN OVERRIDES ---------- */
.dropdown-menu {
	background: var(--nova-bg-surface);
	border: 1px solid var(--nova-border);
	border-radius: var(--nova-radius-md);
	box-shadow: var(--nova-shadow-lg);
}

.dropdown-item {
	font-size: 14px;
	padding: 8px 16px;
	border-radius: var(--nova-radius-sm);
	color: var(--nova-text-primary);
	transition: var(--nova-transition-fast);
}

.dropdown-item:hover {
	background: var(--nova-bg-surface-hover);
	color: var(--nova-text-primary) !important;
}

/* ---------- TABLE ---------- */
.table a:not(.btn) {
	color: inherit;
}

.table a:hover {
	text-decoration: none;
}

tbody td {
	vertical-align: middle;
}

/* ---------- MOBILE NAV OVERLAY ---------- */
.nova-backdrop {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 95;
	background: rgba(0, 0, 0, 0.45);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s;
}

html.nova-nav-open .nova-backdrop {
	opacity: 1;
	pointer-events: auto;
}

/* ---------- ANIMATIONS ---------- */
@keyframes nova-fadeInUp {
	from {
		opacity: 0;
		transform: translateY(16px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes nova-scaleIn {
	from {
		opacity: 0;
		transform: scale(0.96);
	}

	to {
		opacity: 1;
		transform: scale(1);
	}
}

.nova-fade-in {
	animation: nova-fadeInUp 0.5s ease both;
}

.nova-fade-in-delay-1 {
	animation: nova-fadeInUp 0.5s 0.1s ease both;
}

.nova-fade-in-delay-2 {
	animation: nova-fadeInUp 0.5s 0.2s ease both;
}

.nova-fade-in-delay-3 {
	animation: nova-fadeInUp 0.5s 0.3s ease both;
}

/* ---------- SLIDER ---------- */
.nova-slider {
	border-radius: var(--nova-radius-xl);
	overflow: hidden;
	margin-bottom: 24px;
}

.nova-slider img {
	width: 100%;
	height: 360px;
	object-fit: cover;
}

/* ---------- PROGRESS BAR ---------- */
.nova-progress {
	height: 10px;
	background: var(--nova-nav-chip);
	border-radius: var(--nova-radius-pill);
	overflow: hidden;
}

.nova-progress-bar {
	height: 100%;
	background: linear-gradient(90deg, var(--nova-sun-500), var(--nova-sun-300));
	border-radius: var(--nova-radius-pill);
	transition: width 0.6s ease;
}

/* ---------- WIDGET CARD ---------- */
.nova-widget {
	background: var(--nova-bg-surface);
	border: 1px solid var(--nova-border);
	border-radius: var(--nova-radius-lg);
	margin-bottom: 16px;
}

.nova-widget-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 16px;
	border-bottom: 1px solid var(--nova-border);
}

.nova-widget-title {
	font-family: var(--nova-font-display);
	font-size: 15px;
	font-weight: 600;
	color: var(--nova-text-primary);
}

.nova-widget-body {
	padding: 16px;
}

/* ---------- CART / SHOPPING ---------- */
.shopping-cart-count-circle {
	width: 18px;
	height: 18px;
	text-align: center;
	justify-content: center;
	display: flex;
	align-items: center;
	border-radius: 50%;
	font-size: 80%;
	background-color: var(--nova-sun-500);
	color: #fff;
}

/* ---------- MISC ---------- */
.nova-divider {
	width: 1px;
	height: 20px;
	background: var(--nova-border-strong);
	flex-shrink: 0;
}

.text-muted {
	color: var(--nova-text-muted) !important;
}

.text-primary-color {
	color: var(--nova-primary) !important;
}

#powered_by_leaderos {
	color: var(--nova-text-secondary);
}

.section,
.page-section,
.store-section,
.news-section,
.profile-section {
	margin: 2rem 0;
}

/* Flat section inner wrappers — Nova uses .nova-content padding instead */
.store-section .container,
.news-section .container,
.profile-section .container,
.page-section .container {
	max-width: 100%;
	padding: 0;
}

/* Flat helpers with no visual equivalent — keep layout intact */
.store-categories,
.featuredProductImage,
.article-content,
.message-content,
.tags,
.me-grid-gutter {
	/* intentionally unstyled: structural only */
}

.article-content img,
.message-content img {
	max-width: 100%;
	height: auto;
}

/* ---------- SUPPORTERS SECTION ---------- */
.nova-supporters {
	padding: 40px 0;
	background: var(--nova-supporters-bg);
	border-top: 1px solid var(--nova-border);
	border-bottom: 1px solid var(--nova-border);
	margin: 0 -50px;
	padding-left: 50px;
	padding-right: 50px;
}

.nova-supporters-grid {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 24px;
	align-items: start;
}

.nova-supporters-grid > * {
	min-width: 0;
}

.nova-top-customer {
	background: var(--nova-bg-glass-strong);
	border: 1px solid var(--nova-border);
	border-radius: var(--nova-radius-lg);
	padding: 20px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 16px;
	min-width: 0;
	overflow: hidden;
}

.nova-top-customer .d-flex {
	flex-wrap: wrap;
	min-width: 0;
}

.nova-top-customer a {
	min-width: 0;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
}

.nova-top-customer .top-badge {
	display: inline-block;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--nova-sun-600);
	background: rgba(245, 158, 11, 0.15);
	border: 1px solid rgba(245, 158, 11, 0.25);
	padding: 3px 10px;
	border-radius: var(--nova-radius-pill);
}

.nova-recent-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
}

.nova-recent-item {
	background: var(--nova-bg-glass-strong);
	border: 1px solid var(--nova-border);
	border-radius: var(--nova-radius-md);
	padding: 10px 12px;
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
	transition: var(--nova-transition-fast);
}

.nova-recent-item:hover {
	border-color: var(--nova-border-strong);
}

.nova-recent-item img {
	width: 36px;
	height: 36px;
	border-radius: var(--nova-radius-sm);
	object-fit: cover;
	flex-shrink: 0;
}

.nova-recent-item .item-info {
	min-width: 0;
	line-height: 1.3;
}

.nova-recent-item .item-name {
	font-size: 13px;
	font-weight: 600;
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	color: var(--nova-text-primary);
}

.nova-recent-item .item-detail {
	font-size: 12px;
	color: var(--nova-text-muted);
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.nova-live-dot {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	color: var(--nova-text-muted);
}

.nova-live-dot::before {
	content: '';
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--nova-success);
	animation: nova-pulse 2s ease-in-out infinite;
}

@media (max-width: 1023px) {
	.nova-supporters {
		margin: 0 -16px;
		padding-left: 16px;
		padding-right: 16px;
	}

	.nova-supporters-grid {
		grid-template-columns: 1fr;
	}

	.nova-recent-grid {
		grid-template-columns: 1fr;
	}
}

/* Forum, Select2, CKEditor overrides for dark mode */
.select2-container--bootstrap4 .select2-selection {
	background-color: var(--nova-input-bg);
	border-color: var(--nova-border);
}

.select2-results__option {
	background-color: var(--nova-input-bg);
}

.select2-container--bootstrap4 .select2-dropdown {
	border-color: var(--nova-border);
}

[data-bs-theme=dark] .ck-editor .ck-content {
	background: var(--nova-bg-surface) !important;
	border-color: var(--nova-border) !important;
}

[data-bs-theme=dark] .ck-editor .ck-toolbar {
	background: var(--nova-bg-sidebar) !important;
	border-color: var(--nova-bg-sidebar) !important;
}

[data-bs-theme=dark] .ck-editor .ck-toolbar__items * {
	color: #FFF !important;
}

/* Cookie consent */
.cc-nb-okagree,
.cc-cp-foot-save {
	color: #fff !important;
	background-color: var(--nova-primary) !important;
}

/* Tabler overrides */
.btn-primary {
	background-color: var(--nova-sun-500) !important;
	border: 2px solid var(--nova-sun-700) !important;
	color: #fff !important;
	box-shadow: 0 3px 0 var(--nova-sun-700);
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.btn-primary:hover {
	filter: brightness(1.05);
	box-shadow: 0 4px 0 var(--nova-sun-700);
}

.btn-primary:active {
	transform: translateY(2px);
	box-shadow: 0 1px 0 var(--nova-sun-700) !important;
}

.btn-success {
	background-color: var(--nova-success) !important;
	border: 2px solid #15803D !important;
	box-shadow: 0 3px 0 #15803D;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.btn-success:hover {
	filter: brightness(1.05);
	box-shadow: 0 4px 0 #15803D;
}

.btn-success:active {
	transform: translateY(2px);
	box-shadow: 0 1px 0 #15803D !important;
}

[data-bs-theme=dark] .navbar-brand-autodark .navbar-brand-image {
	filter: none !important;
}

.auth-logo {
	max-height: 100px;
}

.role__default {
	display: inline-block;
	background: var(--nova-nav-chip);
	font-size: 85%;
	font-weight: 700;
	letter-spacing: 0.04em;
	padding: 0.25rem 0.5rem;
	border-radius: 0.25rem;
}

.avatar-150px {
	width: 150px;
	height: 150px;
}

/* SweetAlert dark mode */
[data-bs-theme=dark] .swal2-popup {
	background: var(--nova-bg-surface);
	color: var(--nova-text-primary);
}

/* Slider Broadcast */
.broadcast {
	width: 100%;
	height: 44px;
	background: var(--nova-bg-surface);
	overflow: hidden;
	border-bottom: 1px solid var(--nova-border);
}

.broadcast-item {
	display: inline-block;
	padding: 10px 600px 10px 0;
}

.broadcast-link {
	color: var(--nova-text-primary);
	text-decoration: none;
}

/* Superwheel */
.superWheel .sWheel-inner {
	background-color: var(--nova-primary);
	border-radius: 100%;
}

/* User data */
.user-data {
	display: flex;
	align-items: center;
	padding: 8px;
}

.user-data:nth-child(2n) {
	border-right: none !important;
}

.user-data:last-child {
	border-bottom: none;
}

.sidebar-profile-card .sidebar-link {
	display: flex;
	align-items: center;
	padding: 0.5rem 1.5rem;
	color: var(--nova-text-primary);
	text-decoration: none !important;
}

.sidebar-profile-card .sidebar-link:hover,
.sidebar-profile-card .sidebar-link.active {
	background: var(--nova-bg-surface-hover);
}

/* Responsive nav-tabs */
.nav-tabs {
	margin-bottom: 0;
}

.nav-tabs .nav-link {
	display: block;
	text-align: center;
	padding: 1rem;
	font-weight: 500;
	color: var(--nova-text-primary);
	border: 0;
	border-radius: 0;
	border-bottom: 2px solid var(--nova-border);
}

.nav-tabs .nav-link:hover {
	color: var(--nova-primary);
}

.nav-tabs .nav-link.active {
	border-bottom: 2px solid var(--nova-primary);
	color: var(--nova-primary);
	background: transparent;
}

.toggle-password {
	line-height: 1;
}


/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1023px) {
	.nova-sidebar {
		transform: translateX(-100%);
		z-index: 200;
	}

	html.nova-nav-open .nova-sidebar {
		transform: translateX(0);
	}

	.nova-topbar {
		display: flex;
	}

	.nova-main {
		margin-left: 0;
	}

	.nova-content {
		padding: 24px 16px;
	}

	.nova-footer {
		padding: 20px 16px;
	}

	.nova-backdrop {
		display: block;
	}

	.nova-hero {
		min-height: 260px;
		padding: 28px 20px;
		border-radius: var(--nova-radius-lg);
	}

	.nova-hero-title {
		font-size: 22px;
	}

	.nova-store-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 12px;
	}

	.nova-category-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 640px) {
	.nova-store-grid {
		grid-template-columns: 1fr;
	}

	.nova-hero-title {
		font-size: 20px;
	}

	.nova-hero {
		min-height: 220px;
		padding: 20px 16px;
	}
}

/* ============================================================
   MICRO-ANIMATIONS (hover / interactive)
   ============================================================ */
.nova-hover-lift {
	transition: var(--nova-transition);
}

.nova-hover-lift:hover {
	transform: translateY(-3px);
}

.nova-hover-glow:hover {
	box-shadow: var(--nova-shadow-glow);
}

/* Skeleton loaders */
@keyframes nova-skeleton {
	0% {
		background-position: -200px 0;
	}

	100% {
		background-position: calc(200px + 100%) 0;
	}
}

.nova-skeleton {
	background: linear-gradient(90deg, var(--nova-nav-chip) 0px, var(--nova-bg-surface-hover) 40px, var(--nova-nav-chip) 80px);
	background-size: 200px 100%;
	animation: nova-skeleton 1.5s ease-in-out infinite;
	border-radius: var(--nova-radius-sm);
}

/* ============================================================
   FLAT THEME COMPATIBILITY
   These classes are used by pages copied from flat theme.
   ============================================================ */

.card-hover {
	transition: var(--nova-transition);
}

.card-hover:hover {
	transform: translateY(-2px);
	box-shadow: var(--nova-shadow-md);
}

.card-product {
	height: 100%;
	position: relative;
}

.card-product .card-img-top {
	height: auto;
}

.card-product .card-body {
	display: flex;
	flex-direction: column;
	position: initial;
}

.card-product .stock {
	position: absolute;
	top: -.75rem;
	left: -0.5rem;
	display: flex;
	justify-content: center;
	align-items: center;
	padding: .325rem .625rem;
	font-size: 90%;
	color: #fff;
	border-radius: var(--nova-radius-sm);
	z-index: 2;
}

.card-product .stock.stock-sm {
	top: -0.5rem;
	left: -0.5rem;
	font-size: 85%;
	padding: .25rem .5rem;
}

.card-product .stock.have-stock {
	background-color: var(--nova-warning);
	color: #333;
}

.card-product .stock.stock-out {
	background-color: var(--nova-danger);
}

.card-product .discount {
	position: absolute;
	top: -1.25rem;
	right: -0.75rem;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 3rem;
	height: 3rem;
	font-weight: 600;
	color: #fff;
	background-color: var(--nova-primary);
	border-radius: 50%;
	z-index: 2;
}

.card-product .discount.discount-sm {
	width: 2.5rem;
	height: 2.5rem;
	font-size: 90%;
	top: -0.75rem;
	right: -0.5rem;
}

.card-product .price {
	font-size: 1.125rem;
	font-weight: 600;
}

.card-product .old-price {
	font-size: 80%;
	font-weight: 700;
	color: var(--nova-danger);
	text-decoration: line-through;
}

.border-bottom-separator>* {
	padding-top: .875rem;
	padding-bottom: .875rem;
	border-bottom: 1px solid var(--nova-border) !important;
}

.border-bottom-separator>*:last-child {
	border-bottom: 0 !important;
}

.no-underline:hover {
	text-decoration: none;
}

.icon-sm {
	font-size: 1rem !important;
}

.card-img-right {
	border-radius: var(--nova-radius-lg) var(--nova-radius-lg) 0 0;
	object-fit: cover;
	object-position: center;
}

@media (min-width: 992px) {

	.home-slider .carousel-inner,
	.home-slider .carousel-item {
		height: 400px;
		overflow: hidden;
	}

	.home-slider .carousel-item img {
		height: 400px;
		object-fit: cover;
		overflow: hidden;
	}
}

.checkoutItemQuantitySpinner {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 45px;
	text-align: center;
	background-color: var(--nova-bg-body);
	border-top: 1px solid var(--nova-border);
	border-bottom: 1px solid var(--nova-border);
}

/* Flat alert compat */
.alert-success {
	color: #fff;
	background-color: var(--tblr-success, var(--nova-success)) !important;
}

.alert-danger {
	color: #fff;
	background-color: var(--tblr-danger, var(--nova-danger)) !important;
}

.alert-warning {
	color: #fff;
	background-color: var(--tblr-warning, var(--nova-warning)) !important;
}

.alert-info {
	color: #fff;
	background-color: var(--tblr-info, var(--nova-info)) !important;
}

/* Flat breadcrumb compat */
.breadcrumb {
	background-color: var(--nova-bg-surface);
	padding: 1rem 1.5rem;
	border-radius: var(--nova-radius-md);
	border: 1px solid var(--nova-border) !important;
	margin-bottom: 0.75rem;
}

.breadcrumb-item a {
	color: inherit;
}

.breadcrumb-item.active {
	color: var(--nova-text-muted) !important;
}

/* Widget compat */
.widget-title {
	color: inherit;
	margin-bottom: 0.5rem;
}

.widget-link {
	color: var(--nova-text-muted) !important;
}

.widget-link:hover {
	text-decoration: none;
	color: inherit !important;
}

/* Footer compat */
.footer {
	color: inherit;
	background-color: var(--nova-bg-surface);
}

/* Navbar compat */
.btn-transparent {
	background-color: transparent;
	border-color: transparent !important;
	box-shadow: none;
	color: inherit;
}

.border-input {
	border-color: var(--nova-border) !important;
}

.fs-100 {
	font-size: 100%;
}

.bg-surface {
	background-color: var(--nova-bg-surface);
}

.no-hover-border::after {
	display: none !important;
}

/* Header banner compat (combo header) */
.header-banner {
	position: relative;
	overflow: hidden;
}

.header-image {
	width: 100%;
	position: relative;
	overflow: hidden;
	height: 255px;
}

.header-image img {
	width: 100%;
	height: 100%;
	object-position: center;
	object-fit: cover;
}

.header-banner-content {
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 100%;
	padding: 1.5rem;
	color: #fff;
	font-weight: 600;
}

.zoom-hover {
	transition: transform .3s;
	transform: scale(1.0);
}

.zoom-hover:hover {
	transform: scale(1.1);
}

.header-banner-logo {
	max-height: 150px;
}

.header-side-icon {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 50px;
	height: 50px;
	background-color: rgba(255, 255, 255, 0.2);
	border-radius: var(--nova-radius-sm);
	color: #fff;
}

.header-side-icon svg {
	fill: white;
	width: 30px;
	height: 30px;
}

.copyright-text {
	padding: 1.5rem 0;
	border-top: 1px solid var(--nova-border);
}

/* Forum compat */
.forum-online-users a:hover {
	text-decoration: none;
}

.forum-online-users a:not(:last-child)::after {
	margin-left: -3px;
	content: ",";
	font-size: 90%;
	color: var(--nova-text-primary) !important;
}

/* Select2 compat */
.select2-container--bootstrap4 .select2-selection--single {
	height: calc(1.875em + .75rem + 2px) !important;
}

.select2-container--bootstrap4 .select2-selection--single .select2-selection__rendered {
	line-height: calc(1.875em + .75rem);
}

.select2-container .select2-selection--single .select2-selection__rendered {
	padding-left: 12px;
}

/* CKEditor compat */
.ck-editor__editable {
	min-height: 150px !important;
}

[data-bs-theme=dark] .card .ck-editor .ck-content {
	background: var(--nova-input-bg) !important;
	border-color: var(--nova-input-bg) !important;
}

[data-bs-theme=dark] .ck-editor .ck-button:hover {
	background: #111111 !important;
}

[data-bs-theme=dark] .ck-editor .ck-button:focus {
	background: #111111 !important;
}

[data-bs-theme=dark] .ck-editor .ck-list__item {
	background: var(--nova-bg-sidebar) !important;
	border-color: var(--nova-bg-sidebar) !important;
}

/* Button disabled compat */
.btn.disabled,
.btn:disabled,
fieldset:disabled .btn {
	--tblr-btn-disabled-border-color: var(--tblr-btn-disabled-bg);
}

.btn-group-sm>.btn,
.btn-sm {
	--tblr-btn-line-height: 1.625;
	--tblr-btn-icon-size: 0.813rem;
}

.btn-icon .ti {
	font-size: 1rem;
}

.btn-link {
	color: rgba(var(--tblr-link-color-rgb), var(--tblr-link-opacity, 1));
}

.btn-link:hover {
	color: rgba(var(--tblr-link-hover-color-rgb), var(--tblr-link-opacity, 1));
}

/* Nav hover compat */
@media (min-width: 768px) {
	.navbar-expand-md .nav-item:hover {
		position: relative;
	}

	.navbar-expand-md .nav-item:hover:not(.no-hover-border)::after {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: -.25rem;
		border: 0 var(--tblr-border-style) var(--tblr-navbar-active-border-color);
		border-bottom-width: 2px;
	}
}

/* Dropdown active compat */
.dropdown-item:active {
	color: var(--tblr-dropdown-link-active-color) !important;
	background-color: var(--tblr-dropdown-link-active-bg);
}

[data-bs-theme=dark] .dropdown-item.active,
[data-bs-theme=dark] .dropdown-item:hover {
	color: #fff;
}

[data-bs-theme=dark] .text-muted {
	color: var(--nova-text-muted) !important;
}

/* Mobile compat */
@media (max-width: 768px) {
	.header-banner-content {
		width: 100%;
		justify-content: center;
	}

	.user-data {
		border-right: none !important;
	}

	.broadcast-item {
		padding-right: 400px;
	}
}

/* Ti icon size */
.ti {
	font-size: 20px;
}

/* Page center */
.page-center {
	justify-content: center;
}

/* CKEditor content last p */
.card-header .ck-content p:last-child,
.card-body .ck-content p:last-child {
	margin-bottom: 0;
}

/* Cookie consent compat */
@media (min-width: 768px) {
	.termsfeed-com---nb .cc-nb-main-container {
		padding: 2rem !important;
	}

	.termsfeed-com---nb-simple {
		bottom: 20px !important;
		right: 20px !important;
		border-radius: 0.625rem !important;
	}
}

.cc-cp-foot-byline {
	visibility: hidden;
}

.cc-pc-head-close:focus {
	border: none !important;
}

.termsfeed-com---palette-dark *:focus {
	box-shadow: none !important;
}

/* Input group compat */
.input-group.input-icon {
	margin-left: 1px;
}

.input-group.input-icon .input-icon-addon {
	z-index: 6;
}

.input-group.input-icon .form-control {
	height: calc(2.25rem + 2px);
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1023px) {
	.nova-sidebar {
		transform: translateX(-100%);
		z-index: 200;
	}

	html.nova-nav-open .nova-sidebar {
		transform: translateX(0);
	}

	.nova-topbar {
		display: flex;
	}

	.nova-main {
		margin-left: 0;
	}

	.nova-content {
		padding: 24px 16px;
	}

	.nova-footer {
		padding: 20px 16px;
	}

	.nova-backdrop {
		display: block;
	}

	.nova-hero {
		min-height: 260px;
		padding: 28px 20px;
		border-radius: var(--nova-radius-lg);
	}

	.nova-hero-title {
		font-size: 22px;
	}

	.nova-store-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 12px;
	}

	.nova-category-grid {
		grid-template-columns: 1fr;
	}

	.nova-char-wrap {
		display: none !important;
	}

	.nova-supporters {
		margin: 0 -16px;
		padding-left: 16px;
		padding-right: 16px;
	}

	.nova-supporters-grid {
		grid-template-columns: 1fr;
	}

	.nova-recent-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 640px) {
	.nova-store-grid {
		grid-template-columns: 1fr;
	}

	.nova-hero-title {
		font-size: 20px;
	}

	.nova-hero {
		min-height: 220px;
		padding: 20px 16px;
	}
}

/* ============================================================
   MICRO-ANIMATIONS
   ============================================================ */
.nova-hover-lift {
	transition: var(--nova-transition);
}

.nova-hover-lift:hover {
	transform: translateY(-3px);
}

.nova-hover-glow:hover {
	box-shadow: var(--nova-shadow-glow);
}

/* Skeleton loaders */
@keyframes nova-skeleton {
	0% {
		background-position: -200px 0;
	}

	100% {
		background-position: calc(200px + 100%) 0;
	}
}

.nova-skeleton {
	background: linear-gradient(90deg, var(--nova-nav-chip) 0px, var(--nova-bg-surface-hover) 40px, var(--nova-nav-chip) 80px);
	background-size: 200px 100%;
	animation: nova-skeleton 1.5s ease-in-out infinite;
	border-radius: var(--nova-radius-sm);
}