/**
 * Nir Wallet — customer dashboard UI (Stitch packs 17–23).
 */

.nsw-wallet {
	--nsw-primary: #630ed4;
	--nsw-primary-rgb: 99, 14, 212;
	--nsw-primary-deep: #4d0cb5;
	--nsw-primary-soft: #f5f3ff;
	--nsw-secondary: #8b5cf6;
	--nsw-card-bg: linear-gradient(135deg, #630ed4 0%, #181445 100%);
	--nsw-surface: #f8fafc;
	--nsw-card: #ffffff;
	--nsw-text: #0f172a;
	--nsw-muted: #64748b;
	--nsw-line: #e2e8f0;
	--nsw-line-subtle: #f1f5f9;
	--nsw-success: #10b981;
	--nsw-success-rgb: 16, 185, 129;
	--nsw-danger: #ef4444;
	--nsw-danger-rgb: 239, 68, 68;
	--nsw-radius: 20px;
	--nsw-radius-sm: 12px;
	--nsw-shadow: 0 4px 20px -2px rgba(15, 23, 42, 0.06), 0 2px 6px -1px rgba(15, 23, 42, 0.03);
	--nsw-shadow-hover: 0 16px 32px -8px rgba(var(--nsw-primary-rgb), 0.16);
	box-sizing: border-box;
	width: 100%;
	max-width: 1240px;
	margin-left: auto;
	margin-right: auto;
	container-type: inline-size;
	container-name: nsw-wallet;
	padding: 0;
	color: var(--nsw-text);
	background: transparent;
	font-family: IRANSans, Vazirmatn, system-ui, -apple-system, Tahoma, sans-serif !important;
	direction: rtl;
}

/* Break out of narrow theme post-content boundaries (Gutenberg / FSE / Twenty Twenty-Five) */
:where(.is-layout-constrained) > .nsw-wallet,
:where(.wp-block-post-content) > .nsw-wallet,
:where(.entry-content) > .nsw-wallet,
.nsw-wallet.alignwide {
	max-width: min(1280px, 100%) !important;
	width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

.nsw-wallet,
.nsw-wallet *:not(.material-symbols-outlined) {
	font-family: IRANSans, Vazirmatn, system-ui, -apple-system, Tahoma, sans-serif !important;
}

.nsw-wallet *,
.nsw-wallet *::before,
.nsw-wallet *::after {
	box-sizing: border-box;
}

.nsw-wallet .material-symbols-outlined {
	font-family: "Material Symbols Outlined" !important;
	font-weight: normal !important;
	font-style: normal;
	font-size: 22px;
	display: inline-block;
	line-height: 1;
	letter-spacing: normal;
	text-transform: none;
	white-space: nowrap;
	word-wrap: normal;
	direction: ltr;
	-webkit-font-smoothing: antialiased;
	-webkit-font-feature-settings: "liga";
	font-feature-settings: "liga";
	vertical-align: middle;
	transition: opacity .12s ease;
}

/* —— Nav / Tabs —— */
.nsw-nav {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	width: 100%;
	margin: 0 0 1.25rem 0;
	padding: 0.35rem;
	background: #ffffff;
	border: 1px solid var(--nsw-line);
	border-radius: 16px;
	box-shadow: 0 2px 8px -2px rgba(0, 0, 0, 0.04);
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.nsw-nav::-webkit-scrollbar {
	display: none;
}

.nsw-nav__link {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.6rem 1rem;
	border-radius: 12px;
	color: #64748b;
	text-decoration: none;
	font-size: 13px;
	font-weight: 700;
	white-space: nowrap;
	transition: all .18s ease;
	flex-shrink: 0;
}

.nsw-nav__link .material-symbols-outlined {
	font-size: 19px;
	opacity: 0.85;
}

.nsw-nav__link:hover {
	background: #f8f6ff;
	color: var(--nsw-primary);
}

.nsw-nav__link.is-active {
	background: linear-gradient(135deg, var(--nsw-primary) 0%, var(--nsw-secondary) 100%);
	color: #ffffff;
	box-shadow: 0 4px 14px -3px rgba(var(--nsw-primary-rgb, 99, 14, 212), 0.45);
}

.nsw-nav__link.is-active .material-symbols-outlined {
	opacity: 1;
}

/* —— Segmented Nav Switch (When 2 tabs exist) —— */
.nsw-nav.nsw-nav--segmented {
	display: inline-flex;
	width: auto;
	max-width: 100%;
	border-radius: 999px;
	padding: 0.35rem;
	background: #f1f5f9;
	border: 1px solid #e2e8f0;
	box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.04);
	margin-bottom: 1.5rem;
}

.nsw-nav.nsw-nav--segmented .nsw-nav__link {
	border-radius: 999px;
	padding: 0.6rem 1.4rem;
	background: transparent;
	color: #64748b;
	font-weight: 700;
	transition: all .2s ease;
}

.nsw-nav.nsw-nav--segmented .nsw-nav__link:hover {
	color: var(--nsw-primary, #630ed4);
	background: rgba(255, 255, 255, 0.6);
}

.nsw-nav.nsw-nav--segmented .nsw-nav__link.is-active {
	background: #ffffff;
	color: var(--nsw-primary, #630ed4);
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.04);
}

.nsw-wallet__body {
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	width: 100%;
	margin: 0;
}

/* —— 2-Column Desktop Neobank Architecture —— */
.nsw-dashboard-cols {
	display: grid;
	grid-template-columns: minmax(360px, 440px) minmax(0, 1fr);
	gap: 1.5rem;
	align-items: start;
	width: 100%;
}

.nsw-col-primary {
	display: flex;
	flex-direction: column;
	gap: 1.15rem;
	min-width: 0;
}

.nsw-col-secondary {
	display: flex;
	flex-direction: column;
	gap: 1.15rem;
	min-width: 0;
}

/* —— Stacked Layout for WooCommerce My Account & Shortcode Page —— */
.nsw-dashboard-cols.nsw-dashboard-cols--stacked {
	display: flex;
	flex-direction: column;
	gap: 1.35rem;
	width: 100%;
	max-width: 860px;
	margin: 0 auto;
	box-sizing: border-box;
}

.woocommerce-MyAccount-content .nsw-dashboard-cols.nsw-dashboard-cols--stacked {
	display: flex !important;
	flex-direction: column !important;
	gap: 1.25rem !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
}

.nsw-dashboard-cols.nsw-dashboard-cols--stacked .nsw-card-scene {
	max-width: 460px;
	width: 100%;
	margin: 0 auto;
}

.nsw-dashboard-cols.nsw-dashboard-cols--stacked .nsw-action-deck {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
	gap: 0.75rem;
	width: 100%;
}

.nsw-dashboard-cols.nsw-dashboard-cols--stacked .nsw-vaults-stack {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 0.85rem;
	width: 100%;
}

.nsw-dashboard-cols.nsw-dashboard-cols--stacked .nsw-card--topup,
.nsw-dashboard-cols.nsw-dashboard-cols--stacked .nsw-card--tx,
.nsw-dashboard-cols.nsw-dashboard-cols--stacked .nsw-mini-stat,
.nsw-dashboard-cols.nsw-dashboard-cols--stacked .nsw-card--invite,
.nsw-dashboard-cols.nsw-dashboard-cols--stacked .nsw-card--support {
	width: 100%;
	box-sizing: border-box;
}

/* —— Physical-Proportioned Neobank Card —— */
.nsw-card-scene {
	perspective: 1200px;
	width: 100%;
}

.nsw-neobank-card {
	position: relative;
	overflow: hidden;
	width: 100%;
	min-height: 215px;
	padding: 1.6rem 1.85rem 1.35rem;
	border-radius: 24px;
	background: var(--nsw-card-bg, linear-gradient(135deg, #09152e 0%, #0d234d 40%, #153878 75%, #1d4ed8 100%));
	color: #ffffff;
	box-shadow: 
		0 20px 42px -10px rgba(var(--nsw-primary-rgb, 13, 35, 77), 0.45),
		0 8px 18px -4px rgba(0, 0, 0, 0.12),
		inset 0 1px 1.5px rgba(255, 255, 255, 0.35);
	border: 1px solid rgba(255, 255, 255, 0.22);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	transition: transform .3s ease, box-shadow .3s ease;
}

.nsw-neobank-card:hover {
	transform: translateY(-2px);
	box-shadow: 
		0 24px 48px -10px rgba(var(--nsw-primary-rgb, 13, 35, 77), 0.55),
		0 10px 22px -4px rgba(0, 0, 0, 0.16),
		inset 0 1px 2px rgba(255, 255, 255, 0.45);
}

.nsw-card-glare {
	position: absolute;
	top: -60px;
	left: -40px;
	width: 280px;
	height: 280px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255, 255, 255, 0.22) 0%, rgba(255, 255, 255, 0) 70%);
	pointer-events: none;
	filter: blur(24px);
}

.nsw-card-pattern {
	position: absolute;
	bottom: -80px;
	right: 0;
	width: 320px;
	height: 240px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255, 255, 255, 0.15) 0%, rgba(var(--nsw-primary-rgb, 29, 78, 216), 0.08) 55%, transparent 70%);
	pointer-events: none;
	filter: blur(32px);
}

.nsw-card-row,
.nsw-card-center {
	position: relative;
	z-index: 2;
}

.nsw-card-row--top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.nsw-card-chip-wrap {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.nsw-emv-chip {
	width: 44px;
	height: 32px;
	border-radius: 7px;
	background: linear-gradient(135deg, #fce080 0%, #f59e0b 50%, #d97706 100%);
	border: 1px solid #b45309;
	box-shadow: 0 2px 7px rgba(0, 0, 0, 0.3), inset 0 1px 1px rgba(255, 255, 255, 0.65);
	position: relative;
	overflow: hidden;
	flex-shrink: 0;
}

.nsw-emv-line {
	position: absolute;
	inset: 0;
	background: 
		linear-gradient(to right, transparent 48%, rgba(180, 83, 9, 0.65) 50%, transparent 52%),
		linear-gradient(to bottom, transparent 48%, rgba(180, 83, 9, 0.65) 50%, transparent 52%);
}

.nsw-card-nfc {
	display: flex;
	align-items: center;
	color: rgba(255, 255, 255, 0.75);
}

.nsw-card-nfc svg {
	transform: rotate(90deg);
}

.nsw-card-brand {
	display: flex;
	align-items: center;
	gap: 0.45rem;
}

.nsw-card-logo-text {
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.02em;
	color: #ffffff;
	text-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
}

.nsw-card-logo-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #38bdf8;
	box-shadow: 0 0 8px #38bdf8;
	animation: nsw-pulse 2s ease-in-out infinite;
}

.nsw-card-center {
	margin: 0.5rem 0;
}

.nsw-card-balance-label {
	display: block;
	font-size: 11.5px;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.75);
	margin-bottom: 0.25rem;
}

.nsw-card-balance-val {
	display: flex;
	align-items: baseline;
	gap: 0.45rem;
}

.nsw-card-balance-val strong {
	font-size: clamp(1.85rem, 3.5vw, 2.35rem);
	font-weight: 900;
	letter-spacing: -0.02em;
	line-height: 1;
	font-variant-numeric: tabular-nums;
	color: #ffffff;
	text-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
}

.nsw-card-currency {
	font-size: 13.5px;
	font-weight: 700;
	color: rgba(255, 255, 255, 0.85);
}

.nsw-card-row--bottom {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 0.75rem;
	padding-top: 0.55rem;
	border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.nsw-card-holder small {
	display: block;
	font-size: 10px;
	color: rgba(255, 255, 255, 0.65);
	font-weight: 500;
	margin-bottom: 0.15rem;
}

.nsw-card-holder strong {
	font-size: 13px;
	font-weight: 800;
	color: #ffffff;
	letter-spacing: 0.01em;
}

.nsw-card-number {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	font-family: monospace, Tahoma, sans-serif;
	font-size: 12.5px;
	color: rgba(255, 255, 255, 0.82);
	direction: ltr;
	letter-spacing: 1.5px;
}

/* —— Floating Action Pills Deck —— */
.nsw-action-deck {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0.75rem;
	width: 100%;
	box-sizing: border-box;
}

.nsw-action-pill {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.45rem;
	padding: 0.85rem 0.65rem;
	border-radius: 16px;
	background: #ffffff;
	border: 1.5px solid #e2e8f0;
	box-shadow: 0 4px 12px -2px rgba(15, 23, 42, 0.04);
	text-decoration: none !important;
	transition: all .2s cubic-bezier(0.16, 1, 0.3, 1);
	min-width: 0;
	box-sizing: border-box;
}

.nsw-action-pill:hover {
	transform: translateY(-2.5px);
	border-color: #3b82f6;
	box-shadow: 0 8px 18px -3px rgba(37, 99, 235, 0.16);
}

.nsw-action-pill__ico {
	width: 38px;
	height: 38px;
	border-radius: 12px;
	display: grid;
	place-items: center;
	transition: transform .2s ease;
}

.nsw-action-pill:hover .nsw-action-pill__ico {
	transform: scale(1.08);
}

.nsw-action-pill__ico.is-transfer {
	background: #eff6ff;
	color: #2563eb;
}

.nsw-action-pill__ico.is-withdraw {
	background: #f0fdf4;
	color: #16a34a;
}

.nsw-action-pill__ico.is-ledger {
	background: var(--nsw-primary-soft, #faf5ff);
	color: var(--nsw-primary, #7c3aed);
}

.nsw-action-pill__ico.is-coupon {
	background: #fff7ed;
	color: #ea580c;
}

.nsw-action-pill__ico.is-support {
	background: #ecfdf5;
	color: #059669;
}

.nsw-action-pill__ico .material-symbols-outlined {
	font-size: 21px;
}

.nsw-action-pill__text {
	font-size: 11.5px;
	font-weight: 800;
	color: #334155;
	text-align: center;
	white-space: normal;
	line-height: 1.25;
}

/* —— Action Deck Duo (When optional actions disabled) —— */
.nsw-action-deck.nsw-action-deck--duo {
	grid-template-columns: repeat(2, 1fr) !important;
	gap: 0.85rem;
}

.nsw-action-deck.nsw-action-deck--duo .nsw-action-pill {
	flex-direction: row;
	justify-content: flex-start;
	padding: 0.95rem 1.15rem;
	gap: 0.85rem;
	background: #ffffff;
	border: 1.5px solid #e2e8f0;
}

.nsw-action-deck.nsw-action-deck--duo .nsw-action-pill:hover {
	border-color: var(--nsw-primary, #630ed4);
	background: #faf5ff;
}

.nsw-action-deck.nsw-action-deck--duo .nsw-action-pill__text {
	text-align: right;
	font-size: 13px;
	font-weight: 800;
}

/* —— Sub-Balances Vaults Stack —— */
.nsw-vaults-stack {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
}

.nsw-vault-card {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	padding: 0.95rem 1.15rem;
	border-radius: 18px;
	background: #ffffff;
	border: 1px solid #e2e8f0;
	box-shadow: 0 4px 12px -2px rgba(15, 23, 42, 0.04);
	transition: all .2s ease;
}

.nsw-vault-card:hover {
	transform: translateY(-2px);
	border-color: #cbd5e1;
	box-shadow: 0 8px 20px -4px rgba(15, 23, 42, 0.08);
}

.nsw-vault-icon {
	width: 40px;
	height: 40px;
	border-radius: 12px;
	display: grid;
	place-items: center;
	flex-shrink: 0;
}

.nsw-vault-card.is-cash .nsw-vault-icon {
	background: #ecfdf5;
	color: #059669;
}

.nsw-vault-card.is-gift .nsw-vault-icon {
	background: var(--nsw-primary-soft, #f3e8ff);
	color: var(--nsw-primary, #7c3aed);
}

.nsw-vault-card.is-status {
	background: linear-gradient(135deg, #ffffff 0%, #f0fdf4 100%);
	border-color: #bbf7d0;
}

.nsw-vault-card.is-status .nsw-vault-icon,
.nsw-vault-icon.is-status {
	background: #dcfce7;
	color: #16a34a;
}

.nsw-status-text {
	font-size: 13.5px;
	font-weight: 800;
	color: #15803d;
}

.nsw-vault-icon .material-symbols-outlined {
	font-size: 21px;
}

.nsw-vault-info {
	min-width: 0;
	flex: 1;
}

.nsw-vault-title {
	display: block;
	font-size: 11px;
	font-weight: 700;
	color: #64748b;
	margin-bottom: 0.2rem;
}

.nsw-vault-amount {
	display: flex;
	align-items: baseline;
	gap: 0.35rem;
}

.nsw-vault-amount strong {
	font-size: 15.5px;
	font-weight: 900;
	color: #0f172a;
	font-variant-numeric: tabular-nums;
}

.nsw-vault-amount small {
	font-size: 11px;
	font-weight: 700;
	color: #64748b;
}

.nsw-vault-badge {
	font-size: 10px;
	font-weight: 800;
	padding: 0.2rem 0.55rem;
	border-radius: 999px;
	background: #f1f5f9;
	color: #64748b;
	white-space: nowrap;
	align-self: center;
}

.nsw-vault-badge.is-accent {
	background: var(--nsw-primary-soft, #faf5ff);
	color: var(--nsw-primary, #7c3aed);
}

.nsw-vault-badge.is-success {
	background: #dcfce7;
	color: #15803d;
	font-weight: 800;
}

.nsw-vault-expiry {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	margin-top: 0.35rem;
	padding: 0.15rem 0.5rem;
	background: #fffbeb;
	color: #b45309;
	border: 1px solid rgba(245, 158, 11, 0.3);
	border-radius: 6px;
	font-size: 10.5px;
	font-weight: 700;
	line-height: 1.2;
}

.nsw-vault-expiry .material-symbols-outlined {
	font-size: 13px;
	line-height: 1;
}

/* —— Mini Stat Box —— */
.nsw-mini-stat {
	padding: 0.85rem 1.1rem;
	border-radius: 18px;
	background: #f8fafc;
	border: 1px solid #e2e8f0;
}

.nsw-mini-stat__head {
	display: flex;
	align-items: center;
	gap: 0.45rem;
	font-size: 11.5px;
	font-weight: 800;
	color: #64748b;
	margin-bottom: 0.65rem;
}

.nsw-mini-stat__head .material-symbols-outlined {
	font-size: 18px;
	color: #3b82f6;
}

.nsw-mini-stat__body {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.65rem;
}

.nsw-mini-stat__item {
	padding: 0.65rem 0.75rem;
	border-radius: 12px;
	background: #ffffff;
	border: 1px solid #e2e8f0;
}

.nsw-mini-stat__item small {
	display: block;
	font-size: 10.5px;
	font-weight: 600;
	color: #64748b;
	margin-bottom: 0.2rem;
}

.nsw-mini-stat__item strong {
	font-size: 12.5px;
	font-weight: 900;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.nsw-mini-stat__item.is-in strong {
	color: #059669;
}

.nsw-mini-stat__item.is-out strong {
	color: #e11d48;
}

/* Fallback / Legacy hero support */
.nsw-hero {
	position: relative;
	overflow: hidden;
	padding: 1.75rem;
	border-radius: 24px;
	background: linear-gradient(135deg, #1b064c 0%, #4c0cb8 65%, #250462 100%);
	color: #ffffff;
	box-shadow: 0 16px 36px -10px rgba(78, 9, 168, 0.45);
	border: 1px solid rgba(255, 255, 255, 0.15);
}

/* —— Strip (transfer/withdraw) —— */
.nsw-strip {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.25rem 1.4rem;
	border-radius: 22px;
	background: var(--nsw-card-bg, linear-gradient(135deg, #4d0cb5 0%, #630ed4 50%, #4338ca 100%));
	color: #fff;
	box-shadow: 0 16px 36px -8px rgba(var(--nsw-primary-rgb, 99, 14, 212), 0.35);
}

.nsw-strip__kicker {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	font-size: 12.5px;
	opacity: 0.9;
	margin-bottom: 0.35rem;
}

.nsw-strip__amount {
	display: flex;
	align-items: baseline;
	gap: 0.4rem;
}

.nsw-strip__amount strong {
	font-size: clamp(1.6rem, 3vw, 2.2rem);
	font-weight: 800;
	line-height: 1;
}

.nsw-strip__amount em {
	font-style: normal;
	opacity: 0.85;
	font-weight: 700;
}

.nsw-strip__note {
	margin: 0.45rem 0 0;
	font-size: 12px;
	opacity: 0.85;
	max-width: 36rem;
}

.nsw-strip__badges {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
	align-items: flex-start;
}

.nsw-strip__badge {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.45rem 0.75rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.14);
	font-size: 11.5px;
	font-weight: 700;
	backdrop-filter: blur(6px);
}

.nsw-strip__badge i {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #6ffbbe;
	display: inline-block;
}

.nsw-strip__badge .material-symbols-outlined { font-size: 16px; }

/* —— Mode toggle —— */
.nsw-mode {
	display: flex;
	gap: 0.4rem;
	padding: 0.35rem;
	border-radius: 999px;
	background: #efeaff;
	border: 1px solid var(--nsw-line);
	max-width: 640px;
	margin: 0 auto;
	width: 100%;
}

.nsw-mode__btn {
	flex: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	padding: 0.7rem 0.85rem;
	border-radius: 999px;
	text-decoration: none;
	font-size: 12.5px;
	font-weight: 800;
	color: #475569;
	background: transparent;
	transition: background .15s, color .15s, box-shadow .15s;
}

.nsw-mode__btn .material-symbols-outlined { font-size: 18px; }

.nsw-mode__btn.is-active {
	background: #fff;
	color: var(--nsw-primary);
	box-shadow: 0 6px 16px -8px rgba(var(--nsw-primary-rgb, 99, 14, 212), 0.45);
}

/* —— Layouts —— */
.nsw-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
	gap: 1.25rem;
	align-items: start;
}

.nsw-layout--club {
	grid-template-columns: minmax(0, 1.1fr) minmax(250px, 0.9fr);
}

.nsw-layout--ledger,
.nsw-layout--full {
	grid-template-columns: 1fr;
	width: 100%;
	max-width: 100%;
	margin: 0;
}

.nsw-layout--transfer,
.nsw-layout--single {
	grid-template-columns: 1fr;
	max-width: 680px;
	margin: 0 auto;
	width: 100%;
}

.nsw-layout__main,
.nsw-layout__side {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	min-width: 0;
}

/* —— Dashboard 2-Column Balanced Grid —— */
.nsw-dashboard-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(280px, 1fr);
	gap: 1.25rem;
	align-items: start;
	width: 100%;
}

.nsw-dashboard-grid__primary,
.nsw-dashboard-grid__secondary {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	min-width: 0;
}

/* —— Modern Cards —— */
.nsw-card {
	background: #ffffff;
	border: 1px solid var(--nsw-line);
	border-radius: var(--nsw-radius);
	padding: 1.35rem 1.4rem;
	box-shadow: var(--nsw-shadow);
	transition: box-shadow .2s ease, border-color .2s ease;
}

.nsw-card:hover {
	box-shadow: 0 8px 24px -4px rgba(15, 23, 42, 0.08);
	border-color: #cbd5e1;
}

.nsw-card__head {
	display: flex;
	align-items: flex-start;
	gap: 0.85rem;
	margin-bottom: 1.25rem;
}

.nsw-card__head--compact {
	align-items: center;
	justify-content: space-between;
}

.nsw-card__title-wrap {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.nsw-card__head h2 {
	margin: 0;
	font-size: 16px;
	font-weight: 800;
	color: var(--nsw-text);
	line-height: 1.3;
}

.nsw-card__head p {
	margin: 0.25rem 0 0;
	color: var(--nsw-muted);
	font-size: 12.5px;
	font-weight: 500;
	line-height: 1.4;
}

.nsw-card__icon {
	width: 44px;
	height: 44px;
	border-radius: 14px;
	display: grid;
	place-items: center;
	background: var(--nsw-primary-soft, #f3e8ff);
	color: var(--nsw-primary);
	flex-shrink: 0;
}

.nsw-card__icon .material-symbols-outlined {
	font-size: 22px;
}

.nsw-card__icon--bolt {
	background: #fef3c7;
	color: #d97706;
}

.nsw-card__icon--history {
	background: #e0e7ff;
	color: #4f46e5;
}

.nsw-card__icon--chart {
	background: var(--nsw-primary-soft, #ede9fe);
	color: var(--nsw-primary, #7c3aed);
}

.nsw-card__icon--gift {
	background: #ecfdf5;
	color: #059669;
}

.nsw-pill {
	padding: 0.35rem 0.75rem;
	border-radius: 999px;
	font-size: 11.5px;
	font-weight: 800;
	white-space: nowrap;
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
}

.nsw-pill.is-success {
	background: #ecfdf5;
	color: var(--nsw-success);
}

.nsw-pill.is-accent {
	background: var(--nsw-primary-soft, #f3e8ff);
	color: var(--nsw-primary);
}

.nsw-link {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	color: var(--nsw-primary);
	font-size: 12.5px;
	font-weight: 800;
	text-decoration: none !important;
	transition: gap .15s ease, opacity .15s ease;
}

.nsw-link:hover {
	opacity: 0.85;
	gap: 0.4rem;
}

.nsw-link .material-symbols-outlined {
	font-size: 17px;
}

/* —— Top-Up Card & Quick Select —— */
.nsw-card--topup {
	border: 1px solid #e0e7ff;
	background: linear-gradient(180deg, #ffffff 0%, #faf8ff 100%);
}

.nsw-quick-wrap {
	margin-bottom: 1.25rem;
}

.nsw-field-label {
	display: block;
	margin-bottom: 0.65rem;
	font-size: 13px;
	font-weight: 800;
	color: var(--nsw-text);
}

.nsw-field {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	margin-bottom: 0.85rem;
	font-size: 13px;
	font-weight: 700;
}

.nsw-field__label {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	color: var(--nsw-text);
}

.nsw-field__label .material-symbols-outlined {
	font-size: 18px;
	color: var(--nsw-primary);
}

.nsw-field__label--split {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	width: 100%;
	flex-wrap: wrap;
}

.nsw-field__label--split small {
	font-weight: 600;
	color: var(--nsw-muted);
	font-size: 11.5px;
}

.nsw-field input,
.nsw-field select {
	padding: 0.8rem 0.9rem;
	border-radius: 14px;
	border: 1px solid var(--nsw-line);
	font-family: inherit;
	font-weight: 600;
	background: var(--nsw-surface, #f8f7ff);
}

.nsw-lookup-row {
	display: flex;
	align-items: stretch;
	gap: 0.45rem;
	background: var(--nsw-surface, #f8f7ff);
	border: 1px solid var(--nsw-line);
	border-radius: 14px;
	padding: 0.3rem;
}

.nsw-lookup-row input {
	flex: 1;
	border: 0 !important;
	background: transparent !important;
	padding: 0.55rem 0.65rem !important;
	min-width: 0;
}

.nsw-lookup-btn {
	appearance: none;
	border: 0;
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	padding: 0.55rem 0.85rem;
	border-radius: 12px;
	background: var(--nsw-primary);
	color: #fff;
	font-weight: 800;
	font-size: 12.5px;
	cursor: pointer;
	font-family: inherit;
	white-space: nowrap;
}

.nsw-lookup-btn .material-symbols-outlined { font-size: 18px; }

.nsw-amount-inline {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.35rem 0.85rem;
	border-radius: 14px;
	background: var(--nsw-surface, #f8f7ff);
	border: 1px solid var(--nsw-line);
}

.nsw-amount-inline input {
	flex: 1;
	border: 0 !important;
	background: transparent !important;
	padding: 0.55rem 0 !important;
	font-size: 1.35rem;
	font-weight: 800;
	min-width: 0;
}

.nsw-amount-inline em {
	font-style: normal;
	font-weight: 800;
	color: var(--nsw-primary);
	background: #ede0ff;
	padding: 0.35rem 0.65rem;
	border-radius: 10px;
	font-size: 12px;
}

.nsw-quick {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-bottom: 0.9rem;
}

.nsw-quick--grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
	gap: 0.65rem;
	margin-bottom: 0.5rem;
}

.nsw-quick__btn {
	appearance: none;
	position: relative;
	border: 1.5px solid #e2e8f0;
	background: #ffffff;
	border-radius: 16px;
	padding: 1rem 0.75rem 0.85rem;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.25rem;
	transition: all .2s cubic-bezier(0.16, 1, 0.3, 1);
	font-family: inherit;
	min-height: 80px;
}

.nsw-quick__btn:hover {
	border-color: var(--nsw-primary);
	transform: translateY(-2px);
	box-shadow: 0 6px 16px -4px rgba(var(--nsw-primary-rgb, 99, 14, 212), 0.18);
}

.nsw-quick__amount {
	font-size: 17px;
	font-weight: 900;
	color: var(--nsw-text);
	line-height: 1.2;
	letter-spacing: -0.01em;
	font-variant-numeric: tabular-nums;
}

.nsw-quick__cur {
	font-size: 11.5px;
	font-weight: 700;
	color: var(--nsw-muted);
}

.nsw-quick__tag {
	position: absolute;
	top: -9px;
	padding: 0.15rem 0.55rem;
	border-radius: 999px;
	font-size: 10px;
	font-weight: 800;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
	white-space: nowrap;
}

.nsw-quick__tag.is-suggested {
	background: #f59e0b;
	color: #ffffff;
}

.nsw-quick__tag.is-gift {
	background: #10b981;
	color: #ffffff;
}

.nsw-quick__btn.is-active,
.nsw-quick__btn.is-suggested.is-active {
	background: linear-gradient(135deg, var(--nsw-primary) 0%, var(--nsw-secondary) 100%) !important;
	border-color: transparent !important;
	color: #ffffff !important;
	box-shadow: 0 10px 24px -6px rgba(var(--nsw-primary-rgb, 99, 14, 212), 0.45);
	transform: translateY(-2px);
}

.nsw-quick__btn.is-active .nsw-quick__amount,
.nsw-quick__btn.is-active .nsw-quick__cur {
	color: #ffffff !important;
}

.nsw-quick__btn--all {
	border-style: dashed;
	color: var(--nsw-primary);
}

/* —— Custom Amount Input Group —— */
.nsw-amount-group {
	margin-bottom: 1.25rem;
}

.nsw-amount-input-box {
	display: flex;
	align-items: center;
	background: #ffffff;
	border: 1.5px solid #cbd5e1;
	border-radius: 16px;
	padding: 0.35rem 0.65rem 0.35rem 1rem;
	transition: all .2s ease;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.02);
}

.nsw-amount-input-box:focus-within {
	border-color: var(--nsw-primary);
	box-shadow: 0 0 0 4px rgba(var(--nsw-primary-rgb, 99, 14, 212), 0.12);
}

.nsw-amount-input-box input {
	flex: 1;
	border: 0 !important;
	background: transparent !important;
	padding: 0.65rem 0.5rem !important;
	font-size: 1.45rem !important;
	font-weight: 800 !important;
	color: var(--nsw-text) !important;
	outline: none !important;
	box-shadow: none !important;
	min-width: 0;
	font-variant-numeric: tabular-nums;
	font-family: inherit;
}

.nsw-amount-input-badge {
	display: inline-flex;
	align-items: center;
	padding: 0.45rem 0.85rem;
	border-radius: 10px;
	background: #f1f5f9;
	color: #475569;
	font-size: 13px;
	font-weight: 800;
	flex-shrink: 0;
}

/* —— Bump Chips —— */
.nsw-bumps-row {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.5rem 0.65rem;
	margin-top: 0.75rem;
}

.nsw-bumps-label {
	font-size: 12px;
	font-weight: 700;
	color: var(--nsw-muted);
}

.nsw-bumps-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
}

.nsw-bump {
	appearance: none;
	border: 1px solid #e2e8f0;
	background: #f8fafc;
	border-radius: 999px;
	padding: 0.3rem 0.75rem;
	font-size: 12px;
	font-weight: 800;
	color: var(--nsw-primary);
	cursor: pointer;
	font-family: inherit;
	transition: all .15s ease;
}

.nsw-bump:hover {
	background: var(--nsw-primary-soft, #ede9fe);
	border-color: rgba(var(--nsw-primary-rgb, 99, 14, 212), 0.4);
	transform: translateY(-1px);
}

.nsw-bump:active {
	transform: scale(0.96);
}

/* —— Legacy Amount Box Support —— */
.nsw-amount-box {
	display: block;
	margin-bottom: 0.85rem;
	padding: 0.85rem 1rem;
	border-radius: 16px;
	background: var(--nsw-surface, #f8f7ff);
	border: 1px solid var(--nsw-line);
}

.nsw-amount-box > span {
	display: block;
	font-size: 12px;
	font-weight: 700;
	color: var(--nsw-muted);
	margin-bottom: 0.35rem;
}

.nsw-amount-box__row {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.55rem 0.75rem;
}

.nsw-amount-box__row input {
	flex: 0 1 auto;
	width: 9.5rem;
	max-width: 100%;
	border: 0;
	background: transparent;
	font-size: 1.55rem;
	font-weight: 800;
	color: var(--nsw-text);
	font-family: inherit;
	outline: none;
	min-width: 0;
}

.nsw-amount-box__row > em {
	font-style: normal;
	font-weight: 800;
	color: var(--nsw-muted);
	font-size: 13px;
}

.nsw-amount-box__bumps {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
}

/* —— Hint, Trustline & CTA Button —— */
.nsw-hint {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0.65rem 0 1rem;
	color: #64748b;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.5;
}

.nsw-hint .material-symbols-outlined {
	font-size: 17px;
	color: #3b82f6;
	flex-shrink: 0;
}

.nsw-btn-primary {
	appearance: none;
	border: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 1rem 1.5rem;
	border-radius: 16px;
	background: linear-gradient(135deg, var(--nsw-primary) 0%, var(--nsw-secondary) 100%);
	color: #ffffff !important;
	font-weight: 800;
	font-size: 15px;
	cursor: pointer;
	text-decoration: none !important;
	box-shadow: 0 10px 25px -5px rgba(var(--nsw-primary-rgb, 99, 14, 212), 0.45);
	font-family: inherit;
	transition: all .2s ease;
}

.nsw-btn-primary:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 30px -6px rgba(var(--nsw-primary-rgb, 99, 14, 212), 0.6);
	filter: brightness(1.04);
}

.nsw-btn-primary:active {
	transform: translateY(0);
}

.nsw-btn-primary--sm {
	padding: 0.6rem 1rem;
	font-size: 12.5px;
	white-space: nowrap;
	border-radius: 12px;
}

.nsw-btn-primary--block {
	width: 100%;
}

.nsw-btn-primary:disabled {
	opacity: 0.55;
	cursor: not-allowed;
}

.nsw-btn-primary .material-symbols-outlined {
	font-size: 20px;
}

.nsw-trustline {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.75rem 1.5rem;
	margin-top: 1.15rem;
	padding-top: 1rem;
	border-top: 1px dashed #e2e8f0;
}

.nsw-trustline--center { justify-content: center; text-align: center; }

.nsw-trustline span,
.nsw-trustline__item {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	font-size: 12px;
	font-weight: 700;
	color: #64748b;
}

.nsw-trustline .material-symbols-outlined,
.nsw-trustline__item .material-symbols-outlined {
	font-size: 17px;
	color: #10b981;
}

.nsw-info-banner {
	display: flex;
	gap: 0.65rem;
	padding: 0.85rem 1rem;
	margin-bottom: 0.9rem;
	border-radius: 14px;
	background: var(--nsw-primary-soft, #f3e8ff);
	border: 1px solid rgba(var(--nsw-primary-rgb, 99, 14, 212), 0.25);
}

.nsw-info-banner .material-symbols-outlined {
	color: var(--nsw-primary);
	flex-shrink: 0;
}

.nsw-info-banner strong {
	display: block;
	font-size: 13px;
	margin-bottom: 0.2rem;
}

.nsw-info-banner p {
	margin: 0;
	font-size: 12px;
	color: var(--nsw-muted);
	font-weight: 500;
}

/* —— Recent Transactions —— */
.nsw-tx-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.nsw-tx {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: 0.85rem;
	align-items: center;
	padding: 0.85rem 0.95rem;
	border-radius: 16px;
	background: #f8fafc;
	border: 1px solid #f1f5f9;
	transition: all .18s ease;
}

.nsw-tx:hover {
	background: #ffffff;
	border-color: #cbd5e1;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04);
	transform: translateX(-2px);
}

.nsw-tx.is-hidden {
	display: none !important;
}

.nsw-tx__icon {
	width: 44px;
	height: 44px;
	border-radius: 14px;
	display: grid;
	place-items: center;
	color: #ffffff;
	flex-shrink: 0;
}

.nsw-tx__icon .material-symbols-outlined {
	font-size: 22px;
}

.nsw-tx.tone-cashback .nsw-tx__icon {
	background: linear-gradient(135deg, var(--nsw-tx-reward, #10b981), var(--nsw-tx-reward-deep, #059669));
	box-shadow: 0 4px 12px -2px rgba(var(--nsw-tx-reward-rgb, 16, 185, 129), 0.35);
}

.nsw-tx.is-credit.tone-credit .nsw-tx__icon {
	background: linear-gradient(135deg, var(--nsw-success, #10b981), var(--nsw-success-deep, #059669));
	box-shadow: 0 4px 12px -2px rgba(var(--nsw-success-rgb, 16, 185, 129), 0.35);
}

.nsw-tx.tone-debit .nsw-tx__icon,
.nsw-tx.is-debit .nsw-tx__icon {
	background: linear-gradient(135deg, var(--nsw-danger, #f43f5e), var(--nsw-danger-deep, #b91c1c));
	box-shadow: 0 4px 12px -2px rgba(var(--nsw-danger-rgb, 244, 63, 94), 0.35);
}

.nsw-tx.tone-topup .nsw-tx__icon {
	background: linear-gradient(135deg, var(--nsw-secondary, #8b5cf6), var(--nsw-primary, #630ed4));
	box-shadow: 0 4px 12px -2px rgba(var(--nsw-primary-rgb, 99, 14, 212), 0.35);
}

.nsw-tx.tone-transfer .nsw-tx__icon {
	background: linear-gradient(135deg, var(--nsw-tx-transfer, #3b82f6), var(--nsw-tx-transfer-deep, #1d4ed8));
	box-shadow: 0 4px 12px -2px rgba(var(--nsw-tx-transfer-rgb, 59, 130, 246), 0.35);
}

.nsw-tx__meta {
	min-width: 0;
}

.nsw-tx__meta strong {
	display: flex;
	align-items: center;
	gap: 0.45rem;
	flex-wrap: wrap;
	font-size: 13.5px;
	font-weight: 800;
	color: var(--nsw-text);
	line-height: 1.3;
}

.nsw-tx__meta small {
	display: block;
	margin-top: 0.25rem;
	color: var(--nsw-muted);
	font-size: 11.5px;
	font-weight: 500;
}

.nsw-tx__meta small a.nsw-tx-order-link {
	color: var(--nsw-primary, #630ed4);
	text-decoration: none;
	font-weight: 700;
	transition: color 0.15s ease, text-decoration 0.15s ease;
}

.nsw-tx__meta small a.nsw-tx-order-link:hover {
	color: var(--nsw-primary-deep, #4c0bb0);
	text-decoration: underline;
}

.nsw-tx__badge {
	font-style: normal;
	font-size: 10.5px;
	font-weight: 700;
	padding: 0.12rem 0.45rem;
	border-radius: 999px;
	background: #ecfdf5;
	color: var(--nsw-success);
}

.nsw-tx.is-debit .nsw-tx__badge {
	background: var(--nsw-primary-soft, #f5f3ff);
	color: var(--nsw-primary);
}

.nsw-tx-expiry {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	padding: 0.12rem 0.5rem;
	border-radius: 999px;
	font-size: 10.5px;
	font-weight: 700;
	line-height: 1.2;
	vertical-align: middle;
	white-space: nowrap;
}

.nsw-tx-expiry .material-symbols-outlined {
	font-size: 12.5px;
	line-height: 1;
}

.nsw-tx-expiry--active {
	background: #fffbeb;
	color: #b45309;
	border: 1px solid rgba(245, 158, 11, 0.35);
}

.nsw-tx-expiry--expired {
	background: #fef2f2;
	color: #dc2626;
	border: 1px solid rgba(239, 68, 68, 0.25);
}

.nsw-tx-expiry-date {
	color: #d97706;
	font-weight: 600;
}

.nsw-tx__right {
	text-align: left;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.2rem;
	flex-shrink: 0;
	white-space: nowrap;
}

.nsw-tx__amount {
	font-weight: 900;
	font-size: 14.5px;
	font-variant-numeric: tabular-nums;
	direction: ltr;
}

.nsw-tx.is-credit .nsw-tx__amount {
	color: #059669;
}

.nsw-tx.is-debit .nsw-tx__amount {
	color: #e11d48;
}

.nsw-tx__right small {
	color: #94a3b8;
	font-size: 11px;
}

.nsw-tx__ok {
	font-style: normal;
	font-size: 10.5px;
	font-weight: 700;
	color: #059669;
	background: #ecfdf5;
	padding: 0.15rem 0.5rem;
	border-radius: 999px;
}

.nsw-tx.is-debit .nsw-tx__ok {
	color: #e11d48;
	background: #fff1f2;
}

.nsw-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.65rem;
	padding: 2.5rem 1rem;
	text-align: center;
	color: #94a3b8;
}

.nsw-empty .material-symbols-outlined {
	font-size: 40px;
	opacity: 0.4;
}

.nsw-empty p {
	margin: 0;
	font-size: 13px;
	font-weight: 600;
}

/* —— Monthly Analytics —— */
.nsw-month {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.nsw-month__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.75rem;
}

.nsw-month__box {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	padding: 0.85rem 0.75rem;
	border-radius: 14px;
	background: #f8fafc;
	border: 1px solid #e2e8f0;
}

.nsw-month__box.is-in {
	background: #f0fdf4;
	border-color: #bbf7d0;
}

.nsw-month__box.is-out {
	background: #fdf2f8;
	border-color: #fbcfe8;
}

.nsw-month__box-ico {
	width: 36px;
	height: 36px;
	border-radius: 10px;
	display: grid;
	place-items: center;
	color: #ffffff;
	flex-shrink: 0;
}

.nsw-month__box-ico .material-symbols-outlined {
	font-size: 18px;
}

.nsw-month__box.is-in .nsw-month__box-ico {
	background: #10b981;
}

.nsw-month__box.is-out .nsw-month__box-ico {
	background: #ec4899;
}

.nsw-month__box-content {
	min-width: 0;
}

.nsw-month__box-content small {
	display: block;
	color: #64748b;
	font-size: 11px;
	font-weight: 600;
}

.nsw-month__box-content strong {
	display: block;
	font-size: 13.5px;
	font-weight: 900;
	color: var(--nsw-text);
	margin-top: 0.15rem;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

.nsw-month__box-content strong small {
	display: inline;
	font-size: 11px;
	font-weight: 700;
	color: #64748b;
}

.nsw-month__progress-wrap {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
	padding: 0.75rem 0.85rem;
	border-radius: 12px;
	background: #f8fafc;
	border: 1px solid #e2e8f0;
}

.nsw-month__progress-label {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 12px;
	color: #475569;
	font-weight: 700;
}

.nsw-month__progress-label strong {
	color: var(--nsw-primary);
	font-size: 13px;
	font-weight: 900;
}

.nsw-month__bar {
	height: 8px;
	border-radius: 999px;
	background: #e2e8f0;
	overflow: hidden;
}

.nsw-month__bar span {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: linear-gradient(90deg, var(--nsw-primary), var(--nsw-secondary, #a78bfa));
	transition: width .4s ease;
}

/* —— Referral Invite Card —— */
.nsw-card--invite {
	border: 1px solid rgba(var(--nsw-primary-rgb, 99, 14, 212), 0.25);
	background: linear-gradient(180deg, #ffffff 0%, var(--nsw-primary-soft, #faf5ff) 100%);
}

.nsw-invite__title {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
}

.nsw-invite__title .material-symbols-outlined { color: var(--nsw-primary); }

.nsw-invite__content {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.nsw-invite__row {
	display: flex;
	align-items: stretch;
	gap: 0.5rem;
	padding: 0.35rem;
	border-radius: 14px;
	background: #ffffff;
	border: 1px dashed #c084fc;
}

.nsw-invite__url {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-size: 12.5px;
	font-weight: 700;
	color: var(--nsw-primary);
	background: transparent !important;
	border: 0 !important;
	outline: none !important;
	padding: 0.45rem 0.65rem !important;
	box-shadow: none !important;
}

/* —— Security & Direct Support Card —— */
.nsw-card--support {
	border: 1px solid #d1fae5;
	background: linear-gradient(180deg, #ffffff 0%, #f0fdf4 100%);
	border-radius: var(--nsw-radius);
	padding: 1.2rem 1.35rem;
}

.nsw-card__icon--shield {
	background: #dcfce7;
	color: #059669;
}

.nsw-support__features {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
	margin-top: 0.75rem;
}

.nsw-support__item {
	display: flex;
	align-items: flex-start;
	gap: 0.65rem;
	padding: 0.65rem 0.85rem;
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.85);
	border: 1px solid #e2e8f0;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02);
}

.nsw-support__item .material-symbols-outlined {
	font-size: 20px;
	color: #059669;
	margin-top: 2px;
	flex-shrink: 0;
}

.nsw-support__item strong {
	display: block;
	font-size: 12.5px;
	font-weight: 800;
	color: #1e293b;
	line-height: 1.3;
}

.nsw-support__item small {
	display: block;
	font-size: 11px;
	font-weight: 600;
	color: #64748b;
	margin-top: 2px;
	line-height: 1.4;
}

.nsw-month__ico {
	width: 38px;
	height: 38px;
	border-radius: 12px;
	display: grid;
	place-items: center;
	color: #fff;
}

.nsw-month__row.is-in .nsw-month__ico { background: #10b981; }
.nsw-month__row.is-out .nsw-month__ico { background: #ef4444; }

.nsw-month__row small {
	display: block;
	color: var(--nsw-muted);
	font-size: 11.5px;
}

.nsw-month__row strong {
	font-size: 13.5px;
	font-weight: 800;
}

.nsw-month__bar {
	height: 8px;
	border-radius: 999px;
	background: var(--nsw-primary-soft, #ede9fe);
	overflow: hidden;
}

.nsw-month__bar span {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: linear-gradient(90deg, var(--nsw-primary), var(--nsw-secondary, #a78bfa));
}

.nsw-month__hint {
	margin: 0;
	color: var(--nsw-muted);
	font-size: 12px;
	font-weight: 700;
}

.nsw-secure {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 1rem;
	border-radius: var(--nsw-radius);
	background: linear-gradient(135deg, #eff6ff, #eef2ff);
	border: 1px solid #c7d2fe;
}

.nsw-secure__ico {
	width: 44px;
	height: 44px;
	border-radius: 14px;
	display: grid;
	place-items: center;
	background: #3b82f6;
	color: #fff;
	flex-shrink: 0;
}

.nsw-secure strong {
	display: block;
	font-size: 13px;
	margin-bottom: 0.2rem;
}

.nsw-secure small {
	color: var(--nsw-muted);
	font-size: 11.5px;
}

.nsw-secure-foot {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	margin: 0.25rem 0 0;
	color: var(--nsw-muted);
	font-size: 12px;
	font-weight: 700;
	text-align: center;
}

.nsw-secure-foot .material-symbols-outlined {
	font-size: 16px;
	color: var(--nsw-primary);
}

.nsw-spark {
	height: 48px;
	border-radius: 12px;
	background: linear-gradient(180deg, var(--nsw-primary-soft, #ede9fe), #ffffff);
	position: relative;
	overflow: hidden;
}

.nsw-spark span {
	position: absolute;
	inset: 18px 8% auto;
	height: 3px;
	border-radius: 999px;
	background: linear-gradient(90deg, transparent, var(--nsw-secondary), transparent);
	box-shadow: 0 0 12px rgba(var(--nsw-primary-rgb, 124, 58, 237), 0.45);
}

.nsw-mini-tx {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
}

.nsw-mini-tx li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.65rem;
	padding: 0.55rem 0;
	border-bottom: 1px solid var(--nsw-line);
}

.nsw-mini-tx li:last-child { border-bottom: 0; }

.nsw-mini-tx strong {
	display: block;
	font-size: 12.5px;
	font-weight: 700;
}

.nsw-mini-tx small {
	color: var(--nsw-muted);
	font-size: 11px;
}

.nsw-mini-tx span { font-weight: 800; font-size: 13px; }
.nsw-mini-tx .is-credit span { color: var(--nsw-success); }
.nsw-mini-tx .is-debit span { color: var(--nsw-danger); }

.nsw-rules {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
	font-size: 12.5px;
	color: #475569;
	line-height: 1.55;
}

.nsw-ssl {
	margin-top: 0.85rem;
	padding: 0.55rem 0.75rem;
	border-radius: 10px;
	background: #ecfdf5;
	color: var(--nsw-success);
	font-size: 12px;
	font-weight: 800;
	display: flex;
	align-items: center;
	gap: 0.4rem;
}

.nsw-ssl i {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--nsw-success);
}

.nsw-hint {
	margin: 0.5rem 0;
	color: var(--nsw-muted);
	font-size: 12.5px;
}

.nsw-hint--center { text-align: center; }

.nsw-empty {
	margin: 0;
	padding: 1.25rem 0.5rem;
	text-align: center;
	color: var(--nsw-muted);
}

/* —— Ledger tools —— */
.nsw-stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.75rem;
}

.nsw-stat-card {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 1rem 1.1rem;
	border-radius: 20px;
	background: #fff;
	border: 1px solid var(--nsw-line);
	box-shadow: var(--nsw-shadow);
}

.nsw-stat-card--primary {
	background: linear-gradient(135deg, var(--nsw-primary), var(--nsw-secondary));
	color: #fff;
	border-color: transparent;
}

.nsw-stat-card__ico {
	width: 42px;
	height: 42px;
	border-radius: 14px;
	display: grid;
	place-items: center;
	background: var(--nsw-primary-soft, #f3e8ff);
	color: var(--nsw-primary);
	flex-shrink: 0;
}

.nsw-stat-card--primary .nsw-stat-card__ico {
	background: rgba(255, 255, 255, 0.18);
	color: #fff;
}

.nsw-stat-card__ico.is-bag { background: var(--nsw-primary-soft, #ede9fe); color: var(--nsw-primary, #6d28d9); }
.nsw-stat-card__ico.is-in { background: #d1fae5; color: #047857; }

.nsw-stat-card small {
	display: block;
	font-size: 11.5px;
	opacity: 0.85;
	margin-bottom: 0.15rem;
}

.nsw-stat-card strong {
	display: block;
	font-size: 1.05rem;
	font-weight: 800;
}

.nsw-stat-card em {
	display: block;
	margin-top: 0.2rem;
	font-style: normal;
	font-size: 11px;
	opacity: 0.85;
}

.nsw-ledger-tools {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin-bottom: 1rem;
}

.nsw-search {
	display: flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.65rem 0.9rem;
	border-radius: 16px;
	background: #f8f7ff;
	border: 1px solid var(--nsw-line);
}

.nsw-search .material-symbols-outlined { color: var(--nsw-muted); }

.nsw-search input {
	flex: 1;
	border: 0;
	background: transparent;
	outline: none;
	font-family: inherit;
	font-size: 13px;
	font-weight: 600;
	min-width: 0;
}

.nsw-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.nsw-filter {
	appearance: none;
	border: 1px solid var(--nsw-line);
	background: #fff;
	border-radius: 999px;
	padding: 0.45rem 0.75rem;
	font-size: 12px;
	font-weight: 800;
	color: #475569;
	cursor: pointer;
	font-family: inherit;
}

.nsw-filter.is-active {
	background: var(--nsw-primary);
	border-color: transparent;
	color: #fff;
}

.nsw-export-opts {
	display: flex;
	gap: 0.45rem;
	margin-bottom: 0.85rem;
}

.nsw-export-opts label {
	flex: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	padding: 0.65rem;
	border-radius: 12px;
	border: 1px solid var(--nsw-line);
	font-size: 12.5px;
	font-weight: 800;
	color: var(--nsw-muted);
}

.nsw-export-opts label.is-active {
	border-color: var(--nsw-primary);
	background: #f5f3ff;
	color: var(--nsw-primary);
}

.nsw-donut {
	--nsw-pct: 72;
	width: 120px;
	height: 120px;
	margin: 0.5rem auto 0.85rem;
	border-radius: 50%;
	background: conic-gradient(var(--nsw-primary) calc(var(--nsw-pct) * 1%), #e0e7ff 0);
	display: grid;
	place-items: center;
	position: relative;
}

.nsw-donut::before {
	content: "";
	position: absolute;
	inset: 18px;
	border-radius: 50%;
	background: #fff;
}

.nsw-donut span {
	position: relative;
	z-index: 1;
	font-weight: 800;
	font-size: 1.15rem;
	color: var(--nsw-primary);
}

/* Expiry Alert Banner in Full-Width Ledger */
.nsw-expiry-alert-banner {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 0.95rem 1.15rem;
	border-radius: 16px;
	background: linear-gradient(135deg, #fffbeb, #fef3c7);
	border: 1px solid #fde68a;
	margin-bottom: 1.25rem;
	box-shadow: 0 2px 8px -2px rgba(217, 119, 6, 0.12);
}

.nsw-expiry-alert-banner__icon {
	width: 44px;
	height: 44px;
	border-radius: 12px;
	background: #f59e0b;
	color: #fff;
	display: grid;
	place-items: center;
	flex-shrink: 0;
}

.nsw-expiry-alert-banner__icon .material-symbols-outlined {
	font-size: 24px;
}

.nsw-expiry-alert-banner__body {
	flex: 1;
	min-width: 0;
}

.nsw-expiry-alert-banner__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	flex-wrap: wrap;
	margin-bottom: 0.25rem;
}

.nsw-expiry-alert-banner__head strong {
	font-size: 13.5px;
	color: #92400e;
	font-weight: 800;
}

.nsw-expiry-alert-banner__body p {
	margin: 0;
	font-size: 12px;
	color: #b45309;
	font-weight: 600;
	line-height: 1.6;
}

/* Transfer Security Tip */
.nsw-xf-security-tip {
	display: flex;
	align-items: flex-start;
	gap: 0.85rem;
	padding: 0.9rem 1.1rem;
	border-radius: 14px;
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	margin-top: 1.25rem;
}

.nsw-xf-security-tip .material-symbols-outlined {
	color: var(--nsw-primary, #630ed4);
	font-size: 24px;
	flex-shrink: 0;
	margin-top: 2px;
}

.nsw-xf-security-tip strong {
	display: block;
	font-size: 13px;
	font-weight: 800;
	color: #1e293b;
	margin-bottom: 0.2rem;
}

.nsw-xf-security-tip p {
	margin: 0;
	font-size: 11.5px;
	color: #64748b;
	line-height: 1.6;
	font-weight: 500;
}

/* Expiry Stat Card in Ledger Aside (legacy/fallback) */
.nsw-card--expiry {
	background: #fff;
	border: 1px solid #fef3c7;
	margin-top: 1rem;
}

.nsw-card__icon--expiry {
	background: #fef3c7 !important;
	color: #d97706 !important;
}

.nsw-stat-expiry {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
}

.nsw-stat-expiry__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	flex-wrap: wrap;
}

.nsw-stat-expiry__label {
	font-size: 12px;
	color: var(--nsw-muted);
	font-weight: 600;
}

.nsw-stat-expiry__badge {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	padding: 0.25rem 0.6rem;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 800;
}

.nsw-stat-expiry__badge .material-symbols-outlined {
	font-size: 14px;
}

.nsw-stat-expiry__date {
	font-size: 11.5px;
	color: #78350f;
	background: #fffbeb;
	padding: 0.4rem 0.65rem;
	border-radius: 8px;
	border: 1px dashed rgba(217, 119, 6, 0.3);
}

.nsw-stat-expiry__hint {
	margin: 0;
	font-size: 11px;
	line-height: 1.6;
	color: #94a3b8;
}

/* Expiry Alert Banner in Ledger View */
.nsw-expiry-banner {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 1rem 1.25rem;
	background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
	border: 1px solid #fde68a;
	border-radius: var(--nsw-radius, 16px);
	box-shadow: 0 4px 16px -8px rgba(217, 119, 6, 0.2);
	margin-bottom: 1.25rem;
	width: 100%;
	box-sizing: border-box;
}

.nsw-expiry-banner__icon {
	width: 44px;
	height: 44px;
	border-radius: 12px;
	background: #fff;
	color: #d97706;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	box-shadow: 0 2px 8px rgba(217, 119, 6, 0.15);
}

.nsw-expiry-banner__icon .material-symbols-outlined {
	font-size: 24px;
}

.nsw-expiry-banner__content {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

.nsw-expiry-banner__header {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	flex-wrap: wrap;
}

.nsw-expiry-banner__header strong {
	font-size: 14px;
	font-weight: 800;
	color: #78350f;
}

.nsw-expiry-banner__meta {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 12px;
	color: #92400e;
	flex-wrap: wrap;
}

.nsw-expiry-banner__date {
	font-weight: 700;
	background: rgba(255, 255, 255, 0.75);
	padding: 0.15rem 0.5rem;
	border-radius: 6px;
}

.nsw-expiry-banner__sep {
	opacity: 0.5;
}

.nsw-expiry-banner__hint {
	opacity: 0.9;
}

@media (max-width: 640px) {
	.nsw-expiry-banner {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.75rem;
	}
}

/* —— Ledger Pagination —— */
.nsw-pagination {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1rem;
	margin-top: 1.25rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--nsw-line, #f1f5f9);
}

.nsw-pagination__summary {
	display: flex;
	align-items: center;
	gap: 1rem;
	font-size: 12.5px;
	color: var(--nsw-muted, #64748b);
	font-weight: 600;
	flex-wrap: wrap;
}

.nsw-pagination__size {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
}

.nsw-pagination__size label {
	font-size: 12px;
	color: var(--nsw-muted, #64748b);
	font-weight: 600;
}

.nsw-pagination__size select {
	padding: 0.25rem 0.5rem;
	border-radius: 8px;
	border: 1px solid var(--nsw-line, #e2e8f0);
	background: #fff;
	font-family: inherit;
	font-size: 12px;
	font-weight: 700;
	color: var(--nsw-dark, #0f172a);
	cursor: pointer;
	outline: none;
	transition: border-color .15s;
}

.nsw-pagination__size select:focus {
	border-color: var(--nsw-primary, #630ed4);
}

.nsw-pagination__nav {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	flex-wrap: wrap;
}

.nsw-pagination__pages {
	display: flex;
	align-items: center;
	gap: 0.35rem;
}

.nsw-pagination__btn,
.nsw-pagination__page {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.25rem;
	min-width: 36px;
	height: 36px;
	padding: 0 0.65rem;
	border-radius: 10px;
	border: 1px solid var(--nsw-line, #e2e8f0);
	background: #ffffff;
	color: #334155;
	font-family: inherit;
	font-size: 12.5px;
	font-weight: 700;
	cursor: pointer;
	transition: all .15s ease;
	user-select: none;
}

.nsw-pagination__btn .material-symbols-outlined {
	font-size: 18px;
}

.nsw-pagination__page:hover:not(.is-active),
.nsw-pagination__btn:hover:not(:disabled) {
	background: #f8fafc;
	border-color: #cbd5e1;
	color: var(--nsw-primary, #630ed4);
}

.nsw-pagination__page.is-active {
	background: var(--nsw-primary, #630ed4);
	color: #ffffff;
	border-color: transparent;
	box-shadow: 0 4px 12px -2px rgba(var(--nsw-primary-rgb, 99, 14, 212), 0.35);
	cursor: default;
}

.nsw-pagination__page.is-ellipsis {
	border: none;
	background: transparent;
	min-width: 20px;
	cursor: default;
	color: var(--nsw-muted, #94a3b8);
}

.nsw-pagination__btn:disabled {
	opacity: 0.4;
	cursor: not-allowed;
	background: #f1f5f9;
	border-color: #e2e8f0;
	color: #94a3b8;
}

@media (max-width: 600px) {
	.nsw-pagination {
		flex-direction: column;
		align-items: stretch;
		gap: 0.85rem;
	}
	.nsw-pagination__summary {
		justify-content: space-between;
	}
	.nsw-pagination__nav {
		justify-content: center;
	}
}

/* —— Club hero —— */
.nsw-club-hero {
	display: grid;
	grid-template-columns: 1.6fr 0.8fr;
	gap: 1rem;
	padding: 1.35rem 1.4rem;
	border-radius: 24px;
	background: var(--nsw-card-bg, linear-gradient(135deg, #4d0cb5 0%, #630ed4 50%, #4338ca 100%));
	color: #fff;
	box-shadow: 0 16px 36px -8px rgba(var(--nsw-primary-rgb, 99, 14, 212), 0.35);
}

.nsw-club-hero__stat {
	margin: 0.85rem 0;
	font-size: 13px;
	opacity: 0.92;
}

.nsw-club-hero__stat strong {
	display: block;
	margin-top: 0.25rem;
	font-size: 1.35rem;
}

.nsw-progress__bar {
	height: 10px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.22);
	overflow: hidden;
	margin-bottom: 0.4rem;
}

.nsw-progress__bar span {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: linear-gradient(90deg, #6ffbbe, #a7f3d0);
}

.nsw-progress small {
	font-size: 11.5px;
	opacity: 0.9;
}

.nsw-club-hero__side {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 0.35rem;
	padding: 1rem;
	border-radius: 18px;
	background: rgba(255, 255, 255, 0.14);
	backdrop-filter: blur(8px);
}

.nsw-club-hero__side strong { font-size: 14px; }
.nsw-club-hero__side small { opacity: 0.9; font-size: 12px; }

.nsw-card--promo {
	background: linear-gradient(180deg, var(--nsw-primary-soft, #faf5ff), #fff);
}

.nsw-card--promo h2 {
	margin: 0 0 0.35rem;
	font-size: 15px;
	font-weight: 800;
}

/* Secondary */
.nsw-stat-row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.65rem;
	margin-bottom: 1rem;
}

.nsw-stat-row > div {
	padding: 0.75rem;
	border-radius: 12px;
	background: var(--nsw-surface, #f8f7ff);
	border: 1px solid var(--nsw-line);
}

.nsw-stat-row span {
	display: block;
	font-size: 11.5px;
	color: var(--nsw-muted);
	margin-bottom: 0.2rem;
}

.nsw-stat-row strong { font-size: 14px; }

.nsw-table-wrap {
	overflow-x: auto;
	margin-top: 1rem;
}

.nsw-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 12.5px;
}

.nsw-table th,
.nsw-table td {
	padding: 0.65rem 0.5rem;
	border-bottom: 1px solid var(--nsw-line);
	text-align: right;
}

.nsw-coupon-list {
	list-style: none;
	margin: 1rem 0 0;
	padding: 0;
}

.nsw-coupon-list li {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	padding: 0.65rem 0;
	border-bottom: 1px solid var(--nsw-line);
}

.nsw-strip--coupon {
	display: grid;
	grid-template-columns: 1.4fr 0.9fr;
	align-items: stretch;
	gap: 1.1rem;
}

.nsw-strip--coupon .nsw-strip__main {
	min-width: 0;
}

.nsw-strip--coupon .nsw-strip__amount strong {
	font-size: clamp(1.9rem, 4vw, 2.45rem);
}

.nsw-strip--coupon .nsw-strip__badges {
	justify-content: center;
}

.nsw-card__icon--sm {
	width: 36px;
	height: 36px;
	border-radius: 12px;
}

.nsw-card__icon--sm .material-symbols-outlined {
	font-size: 18px;
}

.nsw-coupon-scope {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	padding: 0.95rem 1rem;
	margin-bottom: 1rem;
	border-radius: 16px;
	background: linear-gradient(135deg, var(--nsw-primary-soft, #f5f3ff), #ffffff);
	border: 1px solid var(--nsw-line);
}

.nsw-coupon-scope__ico {
	width: 44px;
	height: 44px;
	border-radius: 14px;
	display: grid;
	place-items: center;
	background: var(--nsw-primary);
	color: #fff;
	flex-shrink: 0;
}

.nsw-coupon-scope strong {
	display: block;
	font-size: 13.5px;
	font-weight: 800;
	margin-bottom: 0.15rem;
}

.nsw-coupon-scope small {
	display: block;
	color: var(--nsw-muted);
	font-size: 12px;
	line-height: 1.45;
}

.nsw-coupon-scope .nsw-pill {
	margin-right: auto;
	flex-shrink: 0;
}

.nsw-coupon-steps {
	list-style: none;
	margin: 0.35rem 0 0;
	padding: 0;
	display: grid;
	gap: 0.85rem;
}

.nsw-coupon-steps li {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
}

.nsw-coupon-steps__n {
	width: 28px;
	height: 28px;
	border-radius: 999px;
	display: grid;
	place-items: center;
	background: var(--nsw-primary-soft, #ede9fe);
	color: var(--nsw-primary);
	font-size: 12px;
	font-weight: 800;
	flex-shrink: 0;
}

.nsw-coupon-steps strong {
	display: block;
	font-size: 13px;
	font-weight: 800;
	margin-bottom: 0.1rem;
}

.nsw-coupon-steps small {
	display: block;
	color: var(--nsw-muted);
	font-size: 11.5px;
	line-height: 1.45;
}

.nsw-card--coupons {
	margin-top: 1rem;
}

.nsw-coupon-tickets {
	list-style: none;
	margin: 0.85rem 0 0;
	padding: 0;
	display: grid;
	gap: 0.75rem;
}

.nsw-ticket {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 0.95rem;
	padding: 0.95rem 1.05rem;
	border-radius: 18px;
	background:
		radial-gradient(circle at 0 50%, transparent 10px, #fff 10.5px) left / 14px 100% no-repeat,
		radial-gradient(circle at 100% 50%, transparent 10px, #fff 10.5px) right / 14px 100% no-repeat,
		#fff;
	border: 1px solid var(--nsw-line);
	box-shadow: 0 8px 22px -18px rgba(var(--nsw-primary-rgb, 99, 14, 212), 0.35);
	position: relative;
	overflow: visible;
	transition: transform .18s ease, box-shadow .18s ease;
}

.nsw-ticket:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 28px -16px rgba(var(--nsw-primary-rgb, 99, 14, 212), 0.4);
}

.nsw-ticket__percent {
	min-width: 4.6rem;
	padding: 0.6rem 0.5rem;
	border-radius: 14px;
	background-color: var(--nsw-primary);
	background-image: linear-gradient(160deg, var(--nsw-primary-deep), var(--nsw-primary, #7c3aed));
	color: #fff;
	text-align: center;
	box-shadow: 0 8px 16px -10px rgba(var(--nsw-primary-rgb, 99, 14, 212), 0.7);
}

.nsw-ticket__percent strong {
	display: block;
	font-size: 1.2rem;
	font-weight: 800;
	line-height: 1.1;
}

.nsw-ticket__percent small {
	display: block;
	margin-top: 0.15rem;
	font-size: 10.5px;
	opacity: 0.9;
	font-weight: 700;
}

.nsw-ticket__body {
	min-width: 0;
	padding-inline: 0.15rem;
}

.nsw-ticket__code {
	display: inline-block;
	padding: 0.4rem 0.75rem;
	border-radius: 10px;
	background: var(--nsw-primary-soft, #f5f3ff);
	border: 1px dashed rgba(var(--nsw-primary-rgb, 99, 14, 212), 0.35);
	color: var(--nsw-primary-deep);
	font-size: 16px;
	font-weight: 800;
	letter-spacing: 0.08em;
}

.nsw-ticket__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem 1rem;
	margin-top: 0.5rem;
	color: var(--nsw-muted);
	font-size: 11.5px;
	font-weight: 700;
}

.nsw-ticket__meta span {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
}

.nsw-ticket__meta .material-symbols-outlined {
	font-size: 15px;
	color: var(--nsw-primary);
}

.nsw-ticket__actions {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	flex-shrink: 0;
}

.nsw-ticket__share {
	width: 36px;
	height: 36px;
	border-radius: 12px;
	display: grid;
	place-items: center;
	background: #eff6ff;
	color: #2563eb;
	text-decoration: none;
	transition: background .15s ease;
}

.nsw-ticket__share:hover {
	background: #dbeafe;
}

.nsw-ticket__share .material-symbols-outlined,
.nsw-ticket__delete .material-symbols-outlined {
	font-size: 18px;
}

.nsw-ticket__delete {
	margin: 0;
}

.nsw-ticket__delete .nsw-link-danger {
	width: 36px;
	height: 36px;
	border-radius: 12px;
	display: grid;
	place-items: center;
	background: #fef2f2;
	padding: 0;
}

.nsw-ticket__delete .nsw-link-danger:hover {
	background: #fee2e2;
}

.nsw-coupon-empty {
	display: grid;
	place-items: center;
	gap: 0.35rem;
	padding: 2rem 1rem;
	text-align: center;
	color: var(--nsw-muted);
}

.nsw-coupon-empty .material-symbols-outlined {
	font-size: 40px;
	color: var(--nsw-secondary, #c4b5fd);
	margin-bottom: 0.25rem;
}

.nsw-coupon-empty strong {
	color: var(--nsw-text);
	font-size: 14px;
	font-weight: 800;
}

.nsw-coupon-empty small {
	font-size: 12px;
	max-width: 28rem;
	line-height: 1.5;
}

.nsw-link-danger {
	appearance: none;
	border: 0;
	background: transparent;
	color: var(--nsw-danger);
	cursor: pointer;
	font-weight: 700;
	font-family: inherit;
}

.nsw-lookup {
	margin: -0.35rem 0 0.75rem;
	padding: 0.55rem 0.75rem;
	border-radius: 12px;
	background: #ecfdf5;
	color: var(--nsw-success);
	font-size: 12.5px;
	font-weight: 700;
}

.nsw-wd-rules {
	margin-bottom: 0.85rem;
	padding: 0.75rem;
	border-radius: 12px;
	background: #fffbeb;
	border: 1px solid #fde68a;
	font-size: 12.5px;
}

.nsw-wd-bank-hint.is-ok { color: var(--nsw-success); }
.nsw-wd-bank-hint.is-bad { color: var(--nsw-danger); }

.nsw-status {
	display: inline-block;
	padding: 0.15rem 0.45rem;
	border-radius: 999px;
	background: #f1f5f9;
	font-size: 11px;
	font-weight: 800;
}

/* Checkout partial */
.nsw-partial {
	margin: 1rem 0;
	padding: 0.85rem 1rem;
	background: #f3faf7;
	border: 1px solid #cfe5dd;
	border-radius: 12px;
}

/* Checkout minimum cart warning notice */
.nsw-checkout-min-notice {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 12px 16px;
	margin: 12px 0 16px;
	background: #fffbeb;
	border: 1px solid #fde68a;
	border-right: 4px solid #f59e0b;
	border-radius: 12px;
	color: #92400e;
	font-size: 13px;
	line-height: 1.6;
	direction: rtl;
	text-align: right;
	box-sizing: border-box;
}
.nsw-checkout-min-notice__icon {
	flex-shrink: 0;
	color: #d97706;
	display: inline-flex;
	align-items: center;
	margin-top: 2px;
}
.nsw-checkout-min-notice__icon .material-symbols-outlined {
	font-size: 20px;
	line-height: 1;
}
.nsw-checkout-min-notice__content {
	flex: 1;
	font-weight: 500;
}

/* Scoped inside WooCommerce #payment container */
#payment .nsw-partial {
	margin: 0 0 1.25rem 0;
	padding: 1rem 1.25rem;
	background: #ffffff;
	border: 1.5px solid #10b981;
	border-radius: 12px;
	box-shadow: 0 2px 6px rgba(16, 185, 129, 0.08);
	transition: all 0.2s ease;
}
#payment .nsw-partial:hover {
	border-color: #059669;
	box-shadow: 0 3px 8px rgba(16, 185, 129, 0.12);
}
#payment .nsw-partial label {
	display: flex;
	align-items: center;
	gap: 10px;
	font-weight: 700;
	font-size: 13.5px;
	color: #065f46;
	cursor: pointer;
	margin: 0 0 4px 0;
}
#payment .nsw-partial input[type="checkbox"] {
	width: 18px;
	height: 18px;
	accent-color: #10b981;
	cursor: pointer;
	margin: 0;
}
#payment .nsw-partial .nsw-partial__hint {
	display: block;
	font-size: 12px;
	color: #047857;
	line-height: 1.6;
	margin-right: 28px;
}
#payment .nsw-checkout-min-notice {
	margin: 0 0 1.25rem 0;
	background: #ffffff;
	border: 1.5px solid #fde68a;
	border-right: 4px solid #f59e0b;
	box-shadow: 0 2px 6px rgba(245, 158, 11, 0.08);
}

/* Host isolation */
body.woocommerce-account .woocommerce-MyAccount-content .nsw-wallet {
	max-width: 100% !important;
	width: 100% !important;
	margin: 0 !important;
	border-radius: 16px;
	overflow: hidden;
	border: 1px solid var(--nsw-line);
	background: var(--nsw-surface);
	box-sizing: border-box;
}

body.nsw-panel-wallet .nirweb_panel_content,
.nirweb_panel_content:has(.nsw-wallet) {
	padding: 0.85rem 1rem 1.35rem !important;
	background: transparent !important;
}

body.nsw-panel-wallet .nsw-wallet,
.nirweb_panel_content .nsw-wallet {
	max-width: none !important;
	width: 100% !important;
	margin: 0 !important;
	border-radius: 0 !important;
	background: transparent;
}

body.nsw-panel-wallet .nsw-nav,
.nirweb_panel_content .nsw-nav {
	width: 100%;
	max-width: none;
	margin: 0 0 0.85rem;
	border-radius: 14px;
	box-shadow: none;
}

body.nsw-panel-wallet .nsw-wallet__body,
.nirweb_panel_content .nsw-wallet__body {
	max-width: none;
	margin: 0;
	padding: 0;
	gap: 0.9rem;
}

body.nsw-panel-wallet .nsw-hero,
.nirweb_panel_content .nsw-hero,
body.nsw-panel-wallet .nsw-club-hero,
.nirweb_panel_content .nsw-club-hero,
body.nsw-panel-wallet .nsw-strip,
.nirweb_panel_content .nsw-strip {
	border-radius: 18px;
}

body.nsw-panel-wallet .nsw-mode,
.nirweb_panel_content .nsw-mode {
	max-width: none;
	margin: 0;
}

/* Compact wallet summary on panel dashboard */
.nsw-panel-card-wrap {
	margin-bottom: 1rem;
}

.nsw-panel-card {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.05rem 1.2rem;
	border-radius: 16px;
	border: 1px solid #e8e4f5;
	background: #fff;
	box-shadow: 0 10px 28px -18px rgba(var(--nsw-primary-rgb, 99, 14, 212), 0.28);
	font-family: IRANSans, Tahoma, sans-serif;
}

.nsw-panel-card__label {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	font-size: 12.5px;
	font-weight: 700;
	color: #64748b;
	margin-bottom: 0.35rem;
}

.nsw-panel-card__label .material-symbols-outlined {
	font-size: 18px;
	color: var(--nsw-primary, #630ed4);
}

.nsw-panel-card__amount {
	display: flex;
	align-items: baseline;
	gap: 0.35rem;
}

.nsw-panel-card__amount strong {
	font-size: 1.55rem;
	font-weight: 800;
	color: #181445;
	line-height: 1;
}

.nsw-panel-card__amount em {
	font-style: normal;
	font-size: 13px;
	font-weight: 700;
	color: #64748b;
}

.nsw-panel-card__meta {
	display: block;
	margin-top: 0.35rem;
	font-size: 12px;
	color: #64748b;
}

.nsw-panel-card__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
}

.nsw-panel-card__btn {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	padding: 0.55rem 0.85rem;
	border-radius: 12px;
	border: 1px solid #e8e4f5;
	background: #faf9ff;
	color: #181445;
	font-size: 12.5px;
	font-weight: 800;
	text-decoration: none;
	font-family: inherit;
}

.nsw-panel-card__btn .material-symbols-outlined { font-size: 17px; }

.nsw-panel-card__btn--primary {
	background: linear-gradient(135deg, var(--nsw-primary, #630ed4), var(--nsw-secondary, #7c3aed));
	border-color: transparent;
	color: #fff;
	box-shadow: 0 8px 18px -12px rgba(var(--nsw-primary-rgb, 99, 14, 212), 0.7);
}

.nsw-panel-card__btn:hover {
	border-color: var(--nsw-primary, #630ed4);
	color: var(--nsw-primary, #630ed4);
}

.nsw-panel-card__btn--primary:hover {
	color: #fff;
	filter: brightness(1.03);
}

@media (max-width: 720px) {
	.nsw-panel-card {
		flex-direction: column;
		align-items: stretch;
	}
	.nsw-panel-card__actions {
		width: 100%;
	}
	.nsw-panel-card__btn {
		flex: 1 1 auto;
		justify-content: center;
	}
}

.woocommerce-MyAccount-content .nsw-wallet a,
.nirweb_panel_content .nsw-wallet a {
	text-decoration: none;
}

.woocommerce-MyAccount-content .nsw-nav {
	margin: 0 0 1.25rem 0;
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	padding: 0.45rem;
	box-sizing: border-box;
}

.woocommerce-MyAccount-content .nsw-nav__link {
	flex: 0 1 auto;
	padding: 0.55rem 0.85rem;
	font-size: 12.5px;
	white-space: nowrap;
}

.nirweb_panel_content .nsw-nav {
	margin: 0 0 1.25rem 0;
	width: 100%;
}

.woocommerce-MyAccount-content .nsw-nav.nsw-nav--segmented,
.nirweb_panel_content .nsw-nav.nsw-nav--segmented {
	display: inline-flex !important;
	width: auto !important;
	max-width: 100% !important;
}

.woocommerce-MyAccount-content .nsw-wallet {
	container-type: inline-size;
}

.woocommerce-MyAccount-content .nsw-wallet__body,
.nirweb_panel_content .nsw-wallet__body {
	padding: 0;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.woocommerce-MyAccount-content .nsw-layout {
	grid-template-columns: minmax(0, 1.2fr) minmax(240px, 300px);
}

.woocommerce-MyAccount-content .nsw-layout--ledger,
.nirweb_panel_content .nsw-layout--ledger,
body.nsw-panel-wallet .nsw-layout--ledger {
	grid-template-columns: 1fr !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
}

.woocommerce-MyAccount-content .nsw-layout--transfer,
.nirweb_panel_content .nsw-layout--transfer,
body.nsw-panel-wallet .nsw-layout--transfer {
	grid-template-columns: 1fr;
	max-width: 680px;
	margin: 0 auto;
	width: 100%;
}

.woocommerce-MyAccount-content .nsw-layout--single,
.nirweb_panel_content .nsw-layout--single,
body.nsw-panel-wallet .nsw-layout--single {
	grid-template-columns: 1fr !important;
}

.woocommerce-MyAccount-content .nsw-dashboard-cols:not(.nsw-dashboard-cols--stacked) {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
	gap: 1.15rem;
	align-items: start;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

.woocommerce-MyAccount-content .nsw-col-primary,
.woocommerce-MyAccount-content .nsw-col-secondary {
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
}

.woocommerce-MyAccount-content .nsw-action-deck {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(115px, 1fr));
	gap: 0.55rem;
	width: 100%;
	box-sizing: border-box;
}

.woocommerce-MyAccount-content .nsw-action-pill {
	padding: 0.75rem 0.5rem;
	min-width: 0;
	box-sizing: border-box;
}

.woocommerce-MyAccount-content .nsw-action-pill__text {
	font-size: 11.5px;
	font-weight: 800;
	color: #334155;
	text-align: center;
	white-space: normal;
	line-height: 1.25;
}

.woocommerce-MyAccount-content .nsw-action-deck--duo {
	grid-template-columns: repeat(2, 1fr) !important;
}

.woocommerce-MyAccount-content .nsw-action-deck--duo .nsw-action-pill {
	flex-direction: row;
	justify-content: flex-start;
	padding: 0.85rem 1rem;
	gap: 0.75rem;
}

.woocommerce-MyAccount-content .nsw-action-deck--duo .nsw-action-pill__text {
	text-align: right;
	font-size: 12.5px;
}

.woocommerce-MyAccount-content .nsw-card--topup {
	max-width: 100%;
	box-sizing: border-box;
	min-width: 0;
}

.woocommerce-MyAccount-content .nsw-quick--grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0.6rem;
	width: 100%;
	box-sizing: border-box;
}

.woocommerce-MyAccount-content .nsw-quick__btn {
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
	padding: 0.85rem 0.5rem 0.75rem;
}

.woocommerce-MyAccount-content .nsw-quick__tag {
	max-width: calc(100% - 10px);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.woocommerce-MyAccount-content .nsw-amount-input-box,
.woocommerce-MyAccount-content .nsw-topup-reward-box,
.woocommerce-MyAccount-content .nsw-btn-primary {
	max-width: 100%;
	box-sizing: border-box;
	min-width: 0;
}

.woocommerce-MyAccount-content .nsw-dashboard-grid {
	grid-template-columns: minmax(0, 1.35fr) minmax(260px, 1fr);
}

.woocommerce-MyAccount-content .nsw-stats {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.woocommerce-MyAccount-content .nsw-club-hero {
	grid-template-columns: 1.4fr 0.8fr;
}

@container (max-width: 880px) {
	.nsw-dashboard-cols,
	.woocommerce-MyAccount-content .nsw-dashboard-cols:not(.nsw-dashboard-cols--stacked) {
		grid-template-columns: 1fr !important;
		gap: 1.25rem !important;
	}
	.nsw-action-deck,
	.woocommerce-MyAccount-content .nsw-action-deck {
		grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important;
	}
	.nsw-quick--grid,
	.woocommerce-MyAccount-content .nsw-quick--grid {
		grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)) !important;
	}
}

@container (max-width: 440px) {
	.nsw-tx {
		grid-template-columns: auto minmax(0, 1fr) !important;
		gap: 0.5rem 0.75rem !important;
		align-items: flex-start !important;
	}
	.nsw-tx__right {
		grid-column: 2 !important;
		flex-direction: row !important;
		flex-wrap: wrap !important;
		align-items: center !important;
		justify-content: flex-start !important;
		gap: 0.45rem 0.75rem !important;
		text-align: right !important;
		margin-top: 0.25rem !important;
	}
}

@media (max-width: 960px) {
	.nsw-dashboard-cols,
	.woocommerce-MyAccount-content .nsw-dashboard-cols,
	.nsw-layout,
	.nsw-layout--club,
	.nsw-layout--ledger,
	.nsw-layout--transfer,
	.nsw-dashboard-grid,
	.nsw-club-hero,
	.woocommerce-MyAccount-content .nsw-layout,
	.woocommerce-MyAccount-content .nsw-dashboard-grid,
	.woocommerce-MyAccount-content .nsw-club-hero,
	.woocommerce-MyAccount-content .nsw-stats {
		grid-template-columns: 1fr !important;
	}
	.woocommerce-MyAccount-content .nsw-action-deck {
		grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
	}
	.woocommerce-MyAccount-content .nsw-quick--grid {
		grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
	}
	.nsw-stats {
		grid-template-columns: 1fr;
	}
	.nsw-hero__cta,
	.nsw-hero__ghost {
		max-width: none;
		flex: 1 1 calc(50% - 0.4rem);
	}
	.nsw-mode {
		max-width: none;
	}
	.nsw-share__btn {
		max-width: none;
	}
}

@media (max-width: 720px) {
	.nsw-nav {
		width: 100%;
		margin: 0 0 1rem 0;
		border-radius: 14px;
		overflow-x: auto;
		flex-wrap: nowrap;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}
	.nsw-nav__link {
		flex: 0 0 auto;
		padding: 0.55rem 0.85rem;
		font-size: 12.5px;
	}
	.nsw-hero {
		padding: 1.35rem 1.25rem;
		border-radius: 20px;
	}
	.nsw-hero__stats,
	.nsw-stat-row,
	.nsw-quick--grid,
	.nsw-ref-stats {
		grid-template-columns: 1fr 1fr;
	}
	.nsw-hero__amount strong {
		font-size: 2rem;
	}
	.nsw-hero__actions {
		width: 100%;
	}
	.nsw-hero__cta,
	.nsw-hero__ghost {
		flex: 1 1 calc(50% - 0.35rem);
		padding: 0.65rem 0.5rem;
		font-size: 12px;
	}
	.nsw-btn-primary {
		width: 100%;
	}
	.nsw-tx {
		grid-template-columns: auto 1fr;
		gap: 0.55rem 0.75rem;
	}
	.nsw-tx__right {
		grid-column: 2;
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		justify-content: flex-start;
		gap: 0.45rem 0.75rem;
		text-align: right;
	}
	.nsw-filters {
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		padding-bottom: 0.15rem;
	}
	.nsw-filter {
		flex: 0 0 auto;
	}
	.nsw-invite__row {
		flex-direction: column;
		align-items: stretch;
	}
	.nsw-lookup-row {
		flex-direction: column;
	}
	.nsw-mode {
		flex-direction: column;
		border-radius: 18px;
	}
	.nsw-mode__btn {
		border-radius: 14px;
	}
	.nsw-coupon-scope {
		flex-wrap: wrap;
	}
	.nsw-coupon-scope .nsw-pill {
		margin-right: 0;
	}
	.nsw-strip--coupon {
		grid-template-columns: 1fr;
	}
	.nsw-ticket {
		grid-template-columns: auto 1fr;
		gap: 0.65rem;
	}
	.nsw-ticket__actions {
		grid-column: 1 / -1;
		justify-content: stretch;
	}
	.nsw-ticket__actions .nsw-btn-primary {
		flex: 1;
	}
}

@media (max-width: 480px) {
	.nsw-hero__top {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.75rem;
	}
	.nsw-hero__stats {
		grid-template-columns: 1fr;
		gap: 0.5rem;
	}
	.nsw-hero__actions {
		flex-direction: column;
		align-items: stretch;
	}
	.nsw-hero__cta,
	.nsw-hero__ghost {
		width: 100%;
		flex: 1 1 100%;
	}
	.nsw-quick--grid {
		grid-template-columns: 1fr 1fr;
	}
	.nsw-month__grid {
		grid-template-columns: 1fr;
	}
	.nsw-amount-input-box {
		padding: 0.25rem 0.5rem;
	}
	.nsw-amount-input-box input {
		font-size: 1.25rem !important;
	}
	.nsw-amount-box__row input {
		font-size: 1.35rem;
	}
	.nsw-amount-box__bumps,
	.nsw-bumps-chips {
		width: 100%;
	}
	.nsw-trustline {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.5rem;
	}
	.nsw-nav.nsw-nav--segmented {
		display: flex !important;
		width: 100% !important;
	}
	.nsw-nav.nsw-nav--segmented .nsw-nav__link {
		flex: 1 1 50%;
		justify-content: center;
		padding: 0.55rem 0.5rem;
		font-size: 11.5px;
	}
	.nsw-action-deck {
		grid-template-columns: repeat(2, 1fr);
		gap: 0.5rem;
	}
	.nsw-action-deck.nsw-action-deck--duo {
		grid-template-columns: 1fr !important;
	}
	.nsw-neobank-card {
		padding: 1.25rem 1.25rem 1.15rem;
		min-height: 210px;
	}
	.nsw-card-balance-val strong {
		font-size: 1.65rem;
	}
}

/* ==========================================================================
   NSW Popup Alert / Toast (10s auto-dismiss with progress & close button)
   ========================================================================== */
.nsw-toast-overlay {
	position: fixed;
	top: 24px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 9999999;
	width: calc(100% - 32px);
	max-width: 440px;
	pointer-events: none;
}

.nsw-toast-card {
	pointer-events: auto;
	position: relative;
	background: rgba(255, 255, 255, 0.96);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	border: 1px solid rgba(245, 158, 11, 0.35);
	border-radius: 18px;
	padding: 16px 18px 18px 18px;
	box-shadow: 0 20px 45px -10px rgba(15, 23, 42, 0.18), 0 0 0 1px rgba(245, 158, 11, 0.12);
	display: flex;
	align-items: flex-start;
	gap: 14px;
	direction: rtl;
	text-align: right;
	overflow: hidden;
	animation: nswToastSlideIn 0.35s cubic-bezier(0.16, 1, 0.3, 1) forwards;
	font-family: inherit;
}

.nsw-toast-card--error {
	border-color: rgba(239, 68, 68, 0.35);
	box-shadow: 0 20px 45px -10px rgba(239, 68, 68, 0.18), 0 0 0 1px rgba(239, 68, 68, 0.12);
}

.nsw-toast-card.is-leaving {
	animation: nswToastSlideOut 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.nsw-toast-icon {
	width: 42px;
	height: 42px;
	border-radius: 12px;
	background: #fef3c7;
	color: #d97706;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	box-shadow: 0 4px 10px rgba(217, 119, 6, 0.15);
}

.nsw-toast-card--error .nsw-toast-icon {
	background: #fee2e2;
	color: #dc2626;
	box-shadow: 0 4px 10px rgba(220, 38, 38, 0.15);
}

.nsw-toast-icon .material-symbols-outlined {
	font-size: 24px;
}

.nsw-toast-content {
	flex: 1;
	min-width: 0;
}

.nsw-toast-title {
	font-size: 15px;
	font-weight: 800;
	color: #0f172a;
	margin: 0 0 4px 0;
	display: block;
	line-height: 1.3;
}

.nsw-toast-message {
	font-size: 13px;
	color: #475569;
	margin: 0;
	line-height: 1.6;
	font-weight: 500;
}

.nsw-toast-close {
	background: #f1f5f9;
	border: 0;
	color: #64748b;
	width: 32px;
	height: 32px;
	border-radius: 10px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	flex-shrink: 0;
	transition: all 0.2s ease;
	padding: 0;
}

.nsw-toast-close:hover {
	background: #e2e8f0;
	color: #0f172a;
	transform: scale(1.06);
}

.nsw-toast-close .material-symbols-outlined {
	font-size: 18px;
}

.nsw-toast-progress {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 3.5px;
	background: #f1f5f9;
}

.nsw-toast-progress-bar {
	height: 100%;
	width: 100%;
	background: linear-gradient(90deg, #f59e0b, #ef4444);
	transform-origin: right;
	animation: nswToastTimer 10s linear forwards;
}

.nsw-toast-card--error .nsw-toast-progress-bar {
	background: linear-gradient(90deg, #dc2626, #ef4444);
}

@keyframes nswToastSlideIn {
	from {
		opacity: 0;
		transform: translateY(-20px) scale(0.95);
	}
	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

@keyframes nswToastSlideOut {
	from {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
	to {
		opacity: 0;
		transform: translateY(-16px) scale(0.95);
	}
}

@keyframes nswToastTimer {
	from {
		transform: scaleX(1);
	}
	to {
		transform: scaleX(0);
	}
}

@keyframes nswInputShake {
	0%, 100% { transform: translateX(0); }
	20%, 60% { transform: translateX(-6px); }
	40%, 80% { transform: translateX(6px); }
}

.nsw-amount-input-box.has-error {
	border-color: #ef4444 !important;
	box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.15) !important;
	animation: nswInputShake 0.4s ease;
}

.nsw-amount-inline input.has-error {
	border-color: #ef4444 !important;
	box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.15) !important;
	animation: nswInputShake 0.4s ease;
}

.nsw-field select.has-error {
	border-color: #ef4444 !important;
	box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.15) !important;
	animation: nswInputShake 0.4s ease;
}

/* —— Top-up Reward Live Banner —— */
.nsw-topup-reward-banner {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.75rem 0.85rem;
	padding: 0.85rem 1.1rem;
	margin-top: 0.75rem;
	border-radius: 14px;
	background: linear-gradient(135deg, rgba(var(--nsw-primary-rgb, 124, 58, 237), 0.08) 0%, rgba(var(--nsw-primary-rgb, 124, 58, 237), 0.02) 100%);
	border: 1.5px dashed rgba(var(--nsw-primary-rgb, 124, 58, 237), 0.35);
	box-shadow: 0 4px 16px -2px rgba(var(--nsw-primary-rgb, 124, 58, 237), 0.08);
	transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
	position: relative;
	overflow: hidden;
}

.nsw-topup-reward-banner::before {
	content: '';
	position: absolute;
	top: -50%;
	left: -50%;
	width: 200%;
	height: 200%;
	background: radial-gradient(circle, rgba(var(--nsw-primary-rgb, 124, 58, 237), 0.06) 0%, transparent 70%);
	pointer-events: none;
}

.nsw-topup-reward-banner__icon {
	width: 40px;
	height: 40px;
	border-radius: 12px;
	background: linear-gradient(135deg, var(--nsw-primary, #7c3aed) 0%, var(--nsw-secondary, #ec4899) 100%);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	box-shadow: 0 4px 12px rgba(var(--nsw-primary-rgb, 124, 58, 237), 0.35);
}

.nsw-topup-reward-banner__icon .material-symbols-outlined {
	font-size: 22px;
	animation: nswPulseStar 2s ease-in-out infinite alternate;
}

@keyframes nswPulseStar {
	0% { transform: scale(1) rotate(0deg); }
	100% { transform: scale(1.15) rotate(15deg); }
}

.nsw-topup-reward-banner__content {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	flex: 1;
	min-width: 0;
}

.nsw-topup-reward-banner__title {
	font-size: 11.5px;
	font-weight: 700;
	color: var(--nsw-primary, #7c3aed);
}

.nsw-topup-reward-banner__text {
	display: flex;
	align-items: baseline;
	gap: 0.35rem;
	flex-wrap: wrap;
	font-size: 13px;
	color: #1e293b;
}

.nsw-topup-reward-val {
	font-size: 17px;
	font-weight: 900;
	color: var(--nsw-primary, #7c3aed);
	font-family: inherit;
}

.nsw-topup-reward-cur {
	font-size: 11.5px;
	font-weight: 700;
	color: #64748b;
}

.nsw-topup-reward-note {
	font-size: 11.5px;
	font-weight: 500;
	color: #64748b;
	margin-right: 0.25rem;
}

.nsw-topup-reward-badge {
	font-size: 10.5px;
	font-weight: 800;
	padding: 0.25rem 0.65rem;
	border-radius: 999px;
	background: rgba(var(--nsw-primary-rgb, 124, 58, 237), 0.12);
	color: var(--nsw-primary, #7c3aed);
	border: 1px solid rgba(var(--nsw-primary-rgb, 124, 58, 237), 0.25);
	white-space: nowrap;
	flex-shrink: 0;
}

.nsw-topup-quota-note {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.55rem 0.85rem;
	margin-bottom: 0.85rem;
	border-radius: 10px;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.5;
	transition: all 0.25s ease;
}

.nsw-topup-quota-note.is-active {
	background: rgba(124, 58, 237, 0.07);
	color: #6d28d9;
	border: 1px solid rgba(124, 58, 237, 0.2);
}

.nsw-topup-quota-note.is-active .material-symbols-outlined {
	font-size: 18px;
	color: #7c3aed;
	flex-shrink: 0;
}

.nsw-topup-quota-note.is-exhausted {
	background: rgba(245, 158, 11, 0.08);
	color: #b45309;
	border: 1px solid rgba(245, 158, 11, 0.25);
}

.nsw-topup-quota-note.is-exhausted .material-symbols-outlined {
	font-size: 18px;
	color: #d97706;
	flex-shrink: 0;
}

.nsw-dark-mode .nsw-topup-quota-note.is-active,
.nsw-wallet.nsw-dark-mode .nsw-topup-quota-note.is-active {
	background: rgba(167, 139, 250, 0.12);
	color: #c4b5fd;
	border-color: rgba(167, 139, 250, 0.3);
}

.nsw-dark-mode .nsw-topup-quota-note.is-exhausted,
.nsw-wallet.nsw-dark-mode .nsw-topup-quota-note.is-exhausted {
	background: rgba(251, 191, 36, 0.12);
	color: #fde68a;
	border-color: rgba(251, 191, 36, 0.3);
}


/* —— Referral club (redesign) —— */
.nsw-ref-hero {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.25rem;
	margin-bottom: 1rem;
	padding: 1.5rem 1.6rem;
	border-radius: 24px;
	background: var(--nsw-card-bg, radial-gradient(120% 140% at 100% 0%, var(--nsw-secondary, #7c3aed) 0%, var(--nsw-primary) 45%, var(--nsw-primary-deep, #3b0a8f) 100%));
	color: #fff;
	box-shadow: 0 16px 36px -10px rgba(var(--nsw-primary-rgb, 99, 14, 212), 0.45);
}

.nsw-ref-hero__kicker {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.3rem 0.7rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.16);
	font-size: 12px;
	font-weight: 700;
}

.nsw-ref-hero__kicker .material-symbols-outlined { font-size: 18px; }

.nsw-ref-hero h2 {
	margin: 0.7rem 0 0.4rem;
	color: #fff;
	font-size: 1.25rem;
	font-weight: 800;
	line-height: 1.6;
}

.nsw-ref-hero p {
	margin: 0;
	max-width: 520px;
	font-size: 13px;
	line-height: 1.9;
	opacity: 0.92;
}

.nsw-ref-hero p strong {
	padding: 0.05rem 0.4rem;
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.18);
	white-space: nowrap;
}

.nsw-ref-hero__stats {
	display: grid;
	grid-template-columns: repeat(2, minmax(120px, 1fr));
	gap: 0.7rem;
	flex-shrink: 0;
}

.nsw-ref-hero__stats > div {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.2rem;
	padding: 0.9rem 1rem;
	border-radius: 18px;
	background: rgba(255, 255, 255, 0.14);
	backdrop-filter: blur(8px);
}

.nsw-ref-hero__stats .material-symbols-outlined { font-size: 22px; opacity: 0.9; }
.nsw-ref-hero__stats strong { font-size: 1.5rem; font-weight: 800; line-height: 1.2; }
.nsw-ref-hero__stats small { font-size: 11.5px; opacity: 0.88; }

.nsw-ref-card {
	display: flex;
	flex-direction: column;
	gap: 1.1rem;
}

.nsw-ref-card small {
	display: block;
	margin-bottom: 0.45rem;
	color: var(--nsw-muted);
	font-size: 12px;
	font-weight: 600;
}

.nsw-ref-code {
	padding: 1rem 1.1rem;
	border: 2px dashed rgba(var(--nsw-primary-rgb, 99, 14, 212), 0.28);
	border-radius: 18px;
	background: linear-gradient(180deg, var(--nsw-primary-soft, #faf5ff), #fff);
}

.nsw-ref-code__row,
.nsw-ref-link__row {
	display: flex;
	align-items: center;
	gap: 0.6rem;
}

.nsw-ref-code code {
	flex: 1;
	padding: 0;
	background: none;
	color: var(--nsw-primary);
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 1.85rem;
	font-weight: 800;
	letter-spacing: 0.25em;
	text-align: right;
}

.nsw-ref-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	flex-shrink: 0;
	min-height: 42px;
	padding: 0 1rem;
	border: 0;
	border-radius: 12px;
	background: var(--nsw-primary);
	color: #fff;
	font: inherit;
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
	transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}

.nsw-ref-btn:hover { background: var(--nsw-primary-deep); box-shadow: var(--nsw-shadow-hover); }
.nsw-ref-btn:active { transform: translateY(1px); }
.nsw-ref-btn .material-symbols-outlined { font-size: 18px; }

.nsw-ref-btn--ghost {
	background: var(--nsw-primary-soft, #f3e8ff);
	color: var(--nsw-primary);
}

.nsw-ref-btn--ghost:hover { background: rgba(var(--nsw-primary-rgb, 99, 14, 212), 0.15); box-shadow: none; }

.nsw-ref-link__row input {
	flex: 1;
	min-width: 0;
	height: 42px;
	padding: 0 0.8rem;
	border: 1px solid var(--nsw-line);
	border-radius: 12px;
	background: var(--nsw-surface);
	color: var(--nsw-text);
	font-size: 12.5px;
	text-overflow: ellipsis;
}

.nsw-ref-share__row {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.6rem;
}

.nsw-ref-share__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	min-height: 44px;
	border-radius: 12px;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none !important;
	transition: filter .15s ease, transform .15s ease;
}

.nsw-ref-share__btn:hover { filter: brightness(0.95); transform: translateY(-1px); }
.nsw-ref-share__btn .material-symbols-outlined { font-size: 19px; }
.nsw-ref-share__btn.is-telegram { background: #e0f2fe; color: #0369a1 !important; }
.nsw-ref-share__btn.is-whatsapp { background: #dcfce7; color: #15803d !important; }
.nsw-ref-share__btn.is-sms { background: #f1f5f9; color: #334155 !important; }

.nsw-ref-steps h3 {
	margin: 0 0 0.9rem;
	font-size: 15px;
	font-weight: 800;
}

.nsw-ref-steps ol {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.nsw-ref-steps li {
	display: flex;
	align-items: flex-start;
	gap: 0.65rem;
	font-size: 13px;
	line-height: 1.85;
	color: var(--nsw-text);
}

.nsw-ref-steps li span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--nsw-primary-soft, #f3e8ff);
	color: var(--nsw-primary);
	font-weight: 800;
	font-size: 13px;
}

@media (max-width: 960px) {
	.nsw-ref-hero {
		flex-direction: column;
		align-items: stretch;
	}
}

@media (max-width: 520px) {
	.nsw-ref-hero { padding: 1.2rem; }
	.nsw-ref-code code { font-size: 1.45rem; letter-spacing: 0.15em; }
	.nsw-ref-code__row,
	.nsw-ref-link__row { flex-wrap: wrap; }
	.nsw-ref-code__row .nsw-ref-btn,
	.nsw-ref-link__row .nsw-ref-btn { flex: 1 1 100%; }
	.nsw-ref-share__row { grid-template-columns: 1fr; }
}

/* My Account / user-panel content columns are narrow: stack the referral card and steps. */
.woocommerce-MyAccount-content .nsw-layout--club,
.nirweb_panel_content .nsw-layout--club,
body.nsw-panel-wallet .nsw-layout--club {
	grid-template-columns: 1fr;
}

/* —— Withdraw (redesign) —— */
.nsw-wd-hero {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.25rem;
	margin-bottom: 1rem;
	padding: 1.5rem 1.6rem;
	border-radius: 24px;
	background: var(--nsw-card-bg, radial-gradient(120% 140% at 100% 0%, var(--nsw-secondary, #7c3aed) 0%, var(--nsw-primary) 45%, var(--nsw-primary-deep, #3b0a8f) 100%));
	color: #fff;
	box-shadow: 0 16px 36px -10px rgba(var(--nsw-primary-rgb, 99, 14, 212), 0.45);
}

.nsw-wd-hero__kicker {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	font-size: 13px;
	font-weight: 700;
	opacity: 0.92;
}

.nsw-wd-hero__kicker .material-symbols-outlined { font-size: 19px; }

.nsw-wd-hero__amount {
	display: flex;
	align-items: baseline;
	gap: 0.45rem;
	margin-top: 0.35rem;
}

.nsw-wd-hero__amount strong { font-size: 2.2rem; font-weight: 800; line-height: 1.2; }
.nsw-wd-hero__amount em { font-style: normal; font-size: 14px; font-weight: 700; opacity: 0.85; }

.nsw-wd-hero__note {
	margin: 0.5rem 0 0;
	max-width: 460px;
	font-size: 12px;
	line-height: 1.8;
	opacity: 0.85;
}

.nsw-wd-hero__facts {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
}

.nsw-wd-hero__facts > div {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	min-width: 118px;
	padding: 0.75rem 0.9rem;
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.14);
	backdrop-filter: blur(8px);
}

.nsw-wd-hero__facts small { font-size: 11px; opacity: 0.85; }
.nsw-wd-hero__facts strong { font-size: 14px; font-weight: 800; }

.nsw-layout--wd {
	grid-template-columns: minmax(0, 1.5fr) minmax(240px, 1fr);
}

.nsw-wd-alert {
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;
	padding: 0.9rem 1rem;
	border-radius: 14px;
	background: #fffbeb;
	border: 1px solid #fde68a;
	color: #92400e;
}

.nsw-wd-alert p { margin: 0; font-size: 13px; line-height: 1.8; font-weight: 600; }
.nsw-wd-alert .material-symbols-outlined { flex-shrink: 0; font-size: 20px; }

.nsw-wd-form .nsw-field input[type="text"]#nsw-wd-bank {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	letter-spacing: 0.06em;
	text-align: left;
}

.nsw-wd-form .nsw-amount-inline input::placeholder {
	font-size: 14px;
	font-weight: 600;
	color: #94a3b8;
}

.nsw-wd-bank-hint {
	margin: -0.45rem 0 0.8rem;
	font-size: 12px;
	font-weight: 600;
}

.nsw-wd-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: -0.2rem 0 1rem;
}

.nsw-wd-chips .nsw-chip {
	min-height: 0;
	padding: 0.5rem 0.95rem;
	border-radius: 999px;
	flex-direction: row;
	font-size: 13px;
	font-weight: 700;
	color: var(--nsw-text);
}

.nsw-wd-chips .nsw-chip.is-active,
.nsw-wd-chips .nsw-chip:hover {
	border-color: var(--nsw-primary);
	background: var(--nsw-primary-soft, #f3e8ff);
	color: var(--nsw-primary);
	transform: none;
}

.nsw-wd-chips .nsw-chip--all {
	border-style: dashed;
	color: var(--nsw-primary);
}

.nsw-wd-guide h3 {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0 0 0.75rem;
	font-size: 15px;
	font-weight: 800;
}

.nsw-wd-guide h3 .material-symbols-outlined { color: var(--nsw-primary); font-size: 20px; }

.nsw-wd-guide ul,
.nsw-wd-guide__rules {
	margin: 0;
	padding: 0 1.1rem 0 0;
	font-size: 12.5px;
	line-height: 2;
	color: #475569;
}

.nsw-wd-guide__rules p { margin: 0 0 0.4rem; }

.nsw-wd-list {
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.nsw-wd-item {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.75rem 0.9rem;
	border: 1px solid var(--nsw-line-subtle);
	border-radius: 16px;
	background: #fcfcfe;
}

.nsw-wd-item__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	border-radius: 12px;
	background: #f1f5f9;
	color: #475569;
}

.nsw-wd-item__meta { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 0.15rem; }
.nsw-wd-item__meta strong { font-size: 14px; font-weight: 800; }
.nsw-wd-item__meta small { font-size: 11.5px; color: var(--nsw-muted); }

.nsw-wd-item__status {
	flex-shrink: 0;
	padding: 0.3rem 0.7rem;
	border-radius: 999px;
	background: #f1f5f9;
	color: #475569;
	font-size: 11.5px;
	font-weight: 800;
}

.nsw-wd-item.is-pending .nsw-wd-item__icon,
.nsw-wd-item.is-pending .nsw-wd-item__status { background: #fef3c7; color: #b45309; }
.nsw-wd-item.is-processing .nsw-wd-item__icon,
.nsw-wd-item.is-processing .nsw-wd-item__status { background: #e0f2fe; color: #0369a1; }
.nsw-wd-item.is-paid .nsw-wd-item__icon,
.nsw-wd-item.is-paid .nsw-wd-item__status { background: #dcfce7; color: #15803d; }
.nsw-wd-item.is-cancelled .nsw-wd-item__icon,
.nsw-wd-item.is-cancelled .nsw-wd-item__status { background: #fee2e2; color: #b91c1c; }

.woocommerce-MyAccount-content .nsw-layout--wd,
.nirweb_panel_content .nsw-layout--wd,
body.nsw-panel-wallet .nsw-layout--wd {
	grid-template-columns: 1fr;
}

@media (max-width: 960px) {
	.nsw-wd-hero { flex-direction: column; align-items: stretch; }
	.nsw-layout--wd { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
	.nsw-wd-hero { padding: 1.2rem; }
	.nsw-wd-hero__amount strong { font-size: 1.8rem; }
	.nsw-wd-hero__facts > div { flex: 1 1 calc(50% - 0.6rem); min-width: 0; }
}

/* ==========================================================================
   Transfer Recipient Identity Card & Confirmation Modal
   ========================================================================== */
.nsw-recipient-card {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 18px;
	margin: 12px 0 24px 0;
	background: #f0fdf4;
	border: 1.5px solid #86efac;
	border-radius: 16px;
	box-shadow: 0 4px 14px -3px rgba(22, 101, 52, 0.08);
	box-sizing: border-box;
	animation: nswFadeIn 0.25s ease-out;
}

.nsw-recipient-card[hidden] {
	display: none !important;
}

.nsw-recipient-card__avatar {
	width: 42px;
	height: 42px;
	border-radius: 12px;
	background: #dcfce7;
	color: #16a34a;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.nsw-recipient-card__avatar .material-symbols-outlined {
	font-size: 24px;
}

.nsw-recipient-card__info {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
	text-align: right;
}

.nsw-recipient-card__name {
	font-size: 13.5px;
	font-weight: 800;
	color: #166534;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.nsw-recipient-card__username {
	font-size: 11.5px;
	color: #4ade80;
	font-weight: 600;
	direction: ltr;
	text-align: right;
}

.nsw-recipient-card__badge {
	display: flex;
	align-items: center;
	gap: 4px;
	padding: 4px 8px;
	border-radius: 999px;
	background: #dcfce7;
	color: #15803d;
	font-size: 11px;
	font-weight: 700;
	flex-shrink: 0;
}

.nsw-recipient-card__badge .material-symbols-outlined {
	font-size: 15px;
}

/* Modal Overlay & Dialog */
.nsw-xf-modal-overlay {
	position: fixed;
	inset: 0;
	z-index: 999999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
}

.nsw-xf-modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(15, 23, 42, 0.45);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

.nsw-xf-modal-card {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 440px;
	background: #fff;
	border-radius: 20px;
	padding: 22px 24px;
	box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.25);
	border: 1px solid rgba(245, 158, 11, 0.35);
	direction: rtl;
	text-align: right;
	box-sizing: border-box;
	animation: nswModalPop 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes nswModalPop {
	from {
		opacity: 0;
		transform: scale(0.94) translateY(-10px);
	}
	to {
		opacity: 1;
		transform: scale(1) translateY(0);
	}
}

.nsw-xf-modal-close {
	position: absolute;
	top: 16px;
	left: 16px;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	border: none;
	background: #f1f5f9;
	color: #64748b;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}

.nsw-xf-modal-close:hover {
	background: #e2e8f0;
	color: #0f172a;
}

.nsw-xf-modal-close .material-symbols-outlined {
	font-size: 18px;
}

.nsw-xf-modal-top {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	margin-bottom: 16px;
}

.nsw-xf-modal-icon {
	width: 44px;
	height: 44px;
	border-radius: 12px;
	background: #fef3c7;
	color: #d97706;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	box-shadow: 0 4px 10px rgba(217, 119, 6, 0.15);
}

.nsw-xf-modal-icon .material-symbols-outlined {
	font-size: 26px;
}

.nsw-xf-modal-heading h3 {
	margin: 0 0 4px;
	font-size: 16px;
	font-weight: 800;
	color: #0f172a;
}

.nsw-xf-modal-heading p {
	margin: 0;
	font-size: 12px;
	color: #64748b;
	line-height: 1.5;
}

.nsw-xf-modal-details {
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 14px;
	padding: 12px 14px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-bottom: 14px;
}

.nsw-xf-modal-detail-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 13px;
}

.nsw-xf-modal-detail-label {
	color: #64748b;
	font-weight: 500;
}

.nsw-xf-modal-detail-val {
	color: #0f172a;
	font-weight: 700;
}

.nsw-xf-modal-detail-val--amount {
	color: var(--nsw-primary, #7c3aed);
	font-size: 15px;
	font-weight: 800;
}

.nsw-xf-modal-alert {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 12px;
	border-radius: 10px;
	background: #fffbeb;
	border: 1px solid #fef3c7;
	color: #92400e;
	font-size: 11.5px;
	line-height: 1.5;
	margin-bottom: 18px;
}

.nsw-xf-modal-alert .material-symbols-outlined {
	font-size: 17px;
	flex-shrink: 0;
	color: #d97706;
}

.nsw-xf-modal-actions {
	display: flex;
	gap: 10px;
}

.nsw-xf-modal-actions .nsw-btn-primary {
	flex: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	height: 42px;
	border-radius: 12px;
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
	border: none;
}

.nsw-xf-modal-actions .nsw-btn-ghost {
	padding: 0 18px;
	height: 42px;
	border-radius: 12px;
	font-size: 13px;
	font-weight: 600;
	color: #64748b;
	background: #f1f5f9;
	border: none;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}

.nsw-xf-modal-actions .nsw-btn-ghost:hover {
	background: #e2e8f0;
	color: #0f172a;
}

/* ==========================================================================
   NSW Notice Banner (Optimized styling for WooCommerce notices inside wallet)
   ========================================================================== */
.nsw-wallet .woocommerce-error,
.nsw-wallet .woocommerce-message,
.nsw-wallet .woocommerce-info,
.nsw-wallet div.woocommerce-error,
.nsw-wallet div.woocommerce-message,
.nsw-wallet div.woocommerce-info {
	display: flex !important;
	align-items: center;
	gap: 12px;
	padding: 14px 18px !important;
	margin: 0 0 1.25rem 0 !important;
	border-radius: 16px !important;
	font-size: 13.5px !important;
	font-weight: 600 !important;
	line-height: 1.6 !important;
	list-style: none !important;
	direction: rtl !important;
	text-align: right !important;
	box-shadow: 0 4px 15px -3px rgba(0, 0, 0, 0.05) !important;
}

.nsw-wallet .woocommerce-error,
.nsw-wallet div.woocommerce-error {
	background: #fef2f2 !important;
	border: 1.5px solid #fecaca !important;
	color: #991b1b !important;
}

.nsw-wallet .woocommerce-message,
.nsw-wallet div.woocommerce-message {
	background: #f0fdf4 !important;
	border: 1.5px solid #bbf7d0 !important;
	color: #166534 !important;
}

.nsw-wallet .woocommerce-info,
.nsw-wallet div.woocommerce-info {
	background: #eff6ff !important;
	border: 1.5px solid #bfdbfe !important;
	color: #1e40af !important;
}

.nsw-wallet .woocommerce-error li,
.nsw-wallet .woocommerce-message li,
.nsw-wallet .woocommerce-info li {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	color: inherit !important;
}

.nsw-wallet .woocommerce-error::before,
.nsw-wallet .woocommerce-message::before,
.nsw-wallet .woocommerce-info::before {
	position: static !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	font-size: 18px !important;
	line-height: 1 !important;
	flex-shrink: 0;
	margin: 0 !important;
	padding: 0 !important;
}

/* Custom NSW Alert Component */
.nsw-alert {
	display: flex !important;
	align-items: center;
	gap: 12px;
	padding: 14px 18px !important;
	margin: 0 0 1.25rem 0 !important;
	border-radius: 16px !important;
	font-size: 13.5px !important;
	font-weight: 600 !important;
	line-height: 1.6 !important;
	direction: rtl !important;
	text-align: right !important;
	box-shadow: 0 4px 15px -3px rgba(0, 0, 0, 0.05) !important;
	animation: nswFadeIn 0.25s ease-out;
}

.nsw-alert--success {
	background: #f0fdf4 !important;
	border: 1.5px solid #86efac !important;
	color: #166534 !important;
}

.nsw-alert--error {
	background: #fef2f2 !important;
	border: 1.5px solid #fecaca !important;
	color: #991b1b !important;
}

.nsw-alert--info {
	background: #eff6ff !important;
	border: 1.5px solid #bfdbfe !important;
	color: #1e40af !important;
}

.nsw-alert__icon {
	font-size: 24px !important;
	flex-shrink: 0;
}

.nsw-alert--success .nsw-alert__icon { color: #16a34a !important; }
.nsw-alert--error .nsw-alert__icon { color: #dc2626 !important; }
.nsw-alert--info .nsw-alert__icon { color: #2563eb !important; }

.nsw-alert__content {
	flex: 1;
	min-width: 0;
}

/* ==========================================================================
   Product Cashback Badge (Top of single product page & Shortcode)
   ========================================================================== */
.nsw-product-cashback-badge {
	display: flex !important;
	align-items: center !important;
	justify-content: flex-start !important;
	gap: 0.75rem !important;
	padding: 0.55rem 0.95rem !important;
	margin: 0.75rem 0 1.25rem 0 !important;
	border-radius: 12px !important;
	background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%) !important;
	border: 1.5px solid #86efac !important;
	box-shadow: 0 2px 10px -2px rgba(16, 185, 129, 0.12) !important;
	direction: rtl !important;
	text-align: right !important;
	box-sizing: border-box !important;
	animation: nswFadeIn 0.3s ease-out;
	width: fit-content !important;
	max-width: 100% !important;
}

.nsw-product-cashback-badge__icon {
	width: 32px !important;
	height: 32px !important;
	min-width: 32px !important;
	border-radius: 8px !important;
	background: #10b981 !important;
	color: #ffffff !important;
	display: grid !important;
	place-items: center !important;
	flex-shrink: 0 !important;
	box-shadow: 0 2px 8px rgba(16, 185, 129, 0.3) !important;
}

.nsw-product-cashback-badge__icon .material-symbols-outlined {
	font-size: 19px !important;
	line-height: 1 !important;
}

.nsw-product-cashback-badge__content {
	flex: 0 1 auto !important;
	min-width: 0 !important;
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	gap: 0.25rem 0.6rem !important;
}

.nsw-product-cashback-badge__title {
	display: inline-block !important;
	font-size: 13px !important;
	font-weight: 800 !important;
	color: #166534 !important;
	margin: 0 !important;
	line-height: 1.4 !important;
}

.nsw-product-cashback-badge__desc {
	display: inline-block !important;
	font-size: 12.5px !important;
	font-weight: 600 !important;
	color: #15803d !important;
	margin: 0 !important;
	line-height: 1.4 !important;
}

.nsw-product-cashback-badge__desc strong {
	color: #047857 !important;
	font-weight: 900 !important;
	font-size: 13px !important;
}

/* Banner variation (Top of single product page / below header) */
.nsw-product-cashback-badge.nsw-product-cashback-badge--banner {
	width: fit-content !important;
	max-width: 100% !important;
	margin: 0 auto 1.25rem auto !important;
	align-self: center !important;
	padding: 0.55rem 1rem !important;
	border-radius: 12px !important;
	background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 65%, #bbf7d0 100%) !important;
	border: 1.5px solid #4ade80 !important;
	box-shadow: 0 4px 14px -3px rgba(16, 185, 129, 0.18) !important;
	gap: 0.75rem !important;
	position: relative !important;
	overflow: hidden !important;
}

.nsw-product-cashback-badge--banner::before {
	content: '';
	position: absolute;
	top: -50%;
	right: -10%;
	width: 120%;
	height: 200%;
	background: radial-gradient(circle, rgba(255, 255, 255, 0.45) 0%, transparent 65%);
	pointer-events: none;
}

.nsw-product-cashback-badge--banner .nsw-product-cashback-badge__icon {
	width: 34px !important;
	height: 34px !important;
	min-width: 34px !important;
	border-radius: 9px !important;
	background: linear-gradient(135deg, #059669 0%, #10b981 100%) !important;
	box-shadow: 0 2px 10px rgba(5, 150, 105, 0.3) !important;
}

.nsw-product-cashback-badge--banner .nsw-product-cashback-badge__icon .material-symbols-outlined {
	font-size: 20px !important;
}

.nsw-product-cashback-badge--banner .nsw-product-cashback-badge__title {
	font-size: 13.5px !important;
	font-weight: 800 !important;
	color: #065f46 !important;
	margin: 0 !important;
}

.nsw-product-cashback-badge--banner .nsw-product-cashback-badge__desc {
	font-size: 12.5px !important;
	font-weight: 600 !important;
	color: #047857 !important;
	margin: 0 !important;
}

.nsw-product-cashback-badge--banner .nsw-product-cashback-badge__desc strong {
	color: #064e3b !important;
	font-size: 13.5px !important;
	font-weight: 900 !important;
}

/* Dark mode for product cashback badge & banner */
.nsw-dark-mode .nsw-product-cashback-badge {
	background: linear-gradient(135deg, #064e3b 0%, #065f46 100%) !important;
	border-color: #059669 !important;
	box-shadow: 0 4px 14px -3px rgba(0, 0, 0, 0.45) !important;
}

.nsw-dark-mode .nsw-product-cashback-badge__title {
	color: #6ee7b7 !important;
}

.nsw-dark-mode .nsw-product-cashback-badge__desc {
	color: #d1fae5 !important;
}

.nsw-dark-mode .nsw-product-cashback-badge__desc strong {
	color: #ffffff !important;
}

.nsw-dark-mode .nsw-product-cashback-badge__icon {
	background: #10b981 !important;
	box-shadow: 0 3px 10px rgba(16, 185, 129, 0.4) !important;
}

/* ==========================================================================
   Cart Upsell Banner (Smart Wallet Payment Threshold Notice)
   ========================================================================== */
.nsw-cart-upsell-banner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1rem;
	padding: 1.1rem 1.35rem;
	margin: 0 0 1.75rem 0;
	border-radius: 18px;
	background: linear-gradient(135deg, #faf5ff 0%, #f3e8ff 100%);
	border: 1.5px solid #d8b4fe;
	box-shadow: 0 8px 24px -6px rgba(124, 58, 237, 0.12);
	direction: rtl;
	text-align: right;
	box-sizing: border-box;
}

.nsw-cart-upsell-banner__main {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	flex: 1;
	min-width: 260px;
}

.nsw-cart-upsell-banner__icon {
	width: 44px;
	height: 44px;
	border-radius: 14px;
	background: linear-gradient(135deg, var(--nsw-primary, #630ed4), var(--nsw-secondary, #8b5cf6));
	color: #ffffff;
	display: grid;
	place-items: center;
	flex-shrink: 0;
	box-shadow: 0 4px 14px rgba(99, 14, 212, 0.35);
}

.nsw-cart-upsell-banner__icon .material-symbols-outlined {
	font-size: 24px;
}

.nsw-cart-upsell-banner__text strong {
	display: block;
	font-size: 13.5px;
	font-weight: 800;
	color: #581c87;
	margin-bottom: 0.25rem;
}

.nsw-cart-upsell-banner__text p {
	margin: 0;
	font-size: 12.5px;
	color: #6b21a8;
	font-weight: 600;
	line-height: 1.5;
}

.nsw-cart-upsell-banner__text p strong {
	display: inline;
	color: #4c1d95;
	font-weight: 900;
}

.nsw-cart-upsell-banner__btn {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.65rem 1.25rem;
	border-radius: 12px;
	background: linear-gradient(135deg, var(--nsw-primary, #630ed4), var(--nsw-secondary, #7c3aed));
	color: #ffffff !important;
	font-size: 12.5px;
	font-weight: 800;
	text-decoration: none !important;
	box-shadow: 0 4px 14px rgba(99, 14, 212, 0.3);
	transition: all .2s ease;
	white-space: nowrap;
}

.nsw-cart-upsell-banner__btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 18px rgba(99, 14, 212, 0.45);
	filter: brightness(1.05);
}

.nsw-cart-upsell-banner__btn .material-symbols-outlined {
	font-size: 18px;
}

/* ==========================================================================
   Checkout Wallet Gateway Disabled State & Blocked Notice
   ========================================================================== */
li.wc_payment_method.nsw-payment-method--disabled {
	opacity: 0.72;
	position: relative;
	transition: opacity 0.2s ease;
}

li.wc_payment_method.nsw-payment-method--disabled label {
	cursor: not-allowed !important;
	color: #64748b;
}

.nsw-gw-disabled-tag {
	display: inline-block;
	margin-right: 0.5rem;
	padding: 0.2rem 0.55rem;
	border-radius: 999px;
	background: #fee2e2;
	color: #dc2626;
	font-size: 11px;
	font-weight: 800;
	line-height: 1.2;
	vertical-align: middle;
}

.nsw-gw-blocked-notice {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	padding: 0.85rem 1rem;
	margin: 0.5rem 0 0.75rem;
	border-radius: 14px;
	background: #fffbeb;
	border: 1.5px solid #fde68a;
	direction: rtl;
	text-align: right;
	box-sizing: border-box;
}

.nsw-gw-blocked-notice .material-symbols-outlined {
	color: #d97706;
	font-size: 22px;
	flex-shrink: 0;
	margin-top: 1px;
}

.nsw-gw-blocked-notice strong {
	display: block;
	font-size: 13px;
	font-weight: 800;
	color: #92400e;
	margin-bottom: 0.25rem;
}

.nsw-gw-blocked-notice p {
	margin: 0;
	font-size: 12px;
	color: #b45309;
	line-height: 1.6;
	font-weight: 600;
}

.nsw-gw-blocked-notice p strong {
	display: inline;
	color: #78350f;
	font-weight: 900;
}

/* ==========================================================================
   Modular Shortcodes Styling (Balance Pill, Card, Standalone Wrappers)
   ========================================================================== */
.nsw-balance-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.45rem 0.95rem;
	border-radius: 999px;
	background: #ffffff;
	border: 1.5px solid #e2e8f0;
	color: #0f172a !important;
	text-decoration: none !important;
	font-size: 13px;
	font-weight: 800;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
	transition: all .2s cubic-bezier(0.16, 1, 0.3, 1);
	line-height: 1;
	vertical-align: middle;
	direction: rtl;
	box-sizing: border-box;
}

.nsw-balance-pill:hover {
	border-color: var(--nsw-primary, #630ed4);
	color: var(--nsw-primary, #630ed4) !important;
	box-shadow: 0 4px 14px rgba(99, 14, 212, 0.18);
	transform: translateY(-1.5px);
}

.nsw-balance-pill__icon {
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--nsw-primary-soft, #f3e8ff);
	color: var(--nsw-primary, #630ed4);
	display: grid;
	place-items: center;
	flex-shrink: 0;
}

.nsw-balance-pill__icon .material-symbols-outlined {
	font-size: 16px;
}

.nsw-balance-pill__val {
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.nsw-balance-plain-link {
	color: inherit;
	text-decoration: none;
	font-weight: 800;
	transition: color 0.15s ease;
}

.nsw-balance-plain-link:hover {
	color: var(--nsw-primary, #630ed4);
}

.nsw-balance-plain-ico {
	font-size: 18px;
	vertical-align: middle;
	color: var(--nsw-primary, #630ed4);
	margin-left: 3px;
}

.nsw-balance-guest {
	display: inline-flex;
	align-items: center;
	padding: 0.35rem 0.85rem;
	border-radius: 999px;
	background: #f1f5f9;
	color: #475569;
	font-size: 12.5px;
	font-weight: 700;
	text-decoration: none;
	transition: all 0.15s ease;
}

.nsw-balance-guest:hover {
	background: #e2e8f0;
	color: #0f172a;
}

.nsw-cashback-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.35rem 0.75rem;
	border-radius: 999px;
	background: #ecfdf5;
	border: 1px solid #a7f3d0;
	color: #047857;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	direction: rtl;
}

.nsw-cashback-badge .material-symbols-outlined {
	font-size: 17px;
	color: #10b981;
}

.nsw-cashback-badge strong {
	color: #065f46;
	font-weight: 900;
}

.nsw-standalone-wrap {
	width: 100%;
	max-width: 680px;
	margin: 0 auto;
	box-sizing: border-box;
	direction: rtl;
	text-align: right;
}

.nsw-standalone-wrap .nsw-card {
	margin-bottom: 0;
}

.nsw-login-prompt {
	padding: 1rem 1.25rem;
	border-radius: 14px;
	background: #f8fafc;
	border: 1px dashed #cbd5e1;
	color: #475569;
	font-size: 13px;
	font-weight: 600;
	text-align: center;
	direction: rtl;
}

.nsw-login-prompt a {
	color: var(--nsw-primary, #630ed4);
	font-weight: 800;
	text-decoration: underline;
}

/* ==========================================================================
   NIR SECURE WALLET — DARK MODE HARMONIZATION (WPYAR_PANEL & GLOBAL DARK)
   ========================================================================== */

/* Direct binding to Nirweb / WPyar Panel CSS theme variables if available */
.nirweb_panel_body .nsw-wallet,
.nirweb_panel_content .nsw-wallet,
.user_nirwallet_box .nsw-wallet {
	--nsw-card: var(--nw-panel-neu-0, #ffffff);
	--nsw-card-surface: var(--nw-panel-neu-1, #f8fafc);
	--nsw-surface: var(--nw-panel-neu-1, #f8fafc);
	--nsw-text: var(--nw-panel-neu-9, #0f172a);
	--nsw-muted: var(--nw-panel-neu-6, #64748b);
	--nsw-line: var(--nw-panel-neu-3, #e2e8f0);
}

.nsw-dark-mode,
.nsw-dark-mode .nsw-wallet,
body.nsw-dark-mode .nsw-wallet,
html.nsw-dark-mode .nsw-wallet,
.nsw-wallet.nsw-dark-mode,
.user_nirwallet_box.nsw-dark-mode .nsw-wallet {
	--nsw-card: #1D2630 !important;
	--nsw-card-surface: #18222d !important;
	--nsw-surface: #18222d !important;
	--nsw-surface-alt: #222e3c !important;
	--nsw-text: #F8F9FA !important;
	--nsw-muted: #94a3b8 !important;
	--nsw-line: #334155 !important;
	--nsw-line-subtle: #24303f !important;
	--nsw-shadow: 0 4px 20px -2px rgba(0, 0, 0, 0.45), 0 2px 6px -1px rgba(0, 0, 0, 0.3) !important;
	--nsw-shadow-hover: 0 16px 32px -8px rgba(0, 0, 0, 0.65) !important;
	color: #F8F9FA !important;
}

/* Ensure panel content area matches panel dark mode background */
.nsw-dark-mode .nirweb_panel_content,
body.nsw-dark-mode .nirweb_panel_content,
html.nsw-dark-mode .nirweb_panel_content {
	background: #131920 !important;
}

/* Smooth theme transition */
.nsw-wallet,
.nsw-wallet .nsw-card,
.nsw-wallet .nsw-nav,
.nsw-wallet .nsw-action-pill,
.nsw-wallet .nsw-vault-card,
.nsw-wallet .nsw-quick__btn,
.nsw-wallet .nsw-amount-input-box,
.nsw-wallet .nsw-tx,
.nsw-wallet .nsw-support__item,
.nsw-wallet .nsw-month__box {
	transition: background-color 0.22s ease, border-color 0.22s ease, color 0.22s ease, box-shadow 0.22s ease;
}

/* —— 1. Navigation Tabs —— */
.nsw-dark-mode .nsw-nav,
.nsw-wallet.nsw-dark-mode .nsw-nav {
	background: #1D2630 !important;
	border-color: #334155 !important;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25) !important;
}

.nsw-dark-mode .nsw-nav__link,
.nsw-wallet.nsw-dark-mode .nsw-nav__link {
	color: #94a3b8 !important;
}

.nsw-dark-mode .nsw-nav__link:hover,
.nsw-wallet.nsw-dark-mode .nsw-nav__link:hover {
	background: #253342 !important;
	color: #ffffff !important;
}

.nsw-dark-mode .nsw-nav__link.is-active,
.nsw-wallet.nsw-dark-mode .nsw-nav__link.is-active {
	color: #ffffff !important;
}

.nsw-dark-mode .nsw-nav.nsw-nav--segmented,
.nsw-wallet.nsw-dark-mode .nsw-nav.nsw-nav--segmented {
	background: #18222d !important;
	border-color: #334155 !important;
	box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.3) !important;
}

.nsw-dark-mode .nsw-nav.nsw-nav--segmented .nsw-nav__link,
.nsw-wallet.nsw-dark-mode .nsw-nav.nsw-nav--segmented .nsw-nav__link {
	color: #94a3b8 !important;
}

.nsw-dark-mode .nsw-nav.nsw-nav--segmented .nsw-nav__link:hover,
.nsw-wallet.nsw-dark-mode .nsw-nav.nsw-nav--segmented .nsw-nav__link:hover {
	background: rgba(255, 255, 255, 0.08) !important;
	color: #ffffff !important;
}

.nsw-dark-mode .nsw-nav.nsw-nav--segmented .nsw-nav__link.is-active,
.nsw-wallet.nsw-dark-mode .nsw-nav.nsw-nav--segmented .nsw-nav__link.is-active {
	background: #1D2630 !important;
	color: #ffffff !important;
	border: 1px solid #334155 !important;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.3) !important;
}

/* —— 2. Cards & Headings —— */
.nsw-dark-mode .nsw-card,
.nsw-wallet.nsw-dark-mode .nsw-card {
	background: #1D2630 !important;
	border-color: #334155 !important;
	box-shadow: 0 4px 20px -2px rgba(0, 0, 0, 0.35) !important;
}

.nsw-dark-mode .nsw-card:hover,
.nsw-wallet.nsw-dark-mode .nsw-card:hover {
	border-color: #475569 !important;
	box-shadow: 0 8px 24px -4px rgba(0, 0, 0, 0.5) !important;
}

.nsw-dark-mode .nsw-card--topup,
.nsw-wallet.nsw-dark-mode .nsw-card--topup {
	background: #1D2630 !important;
	border-color: #334155 !important;
}

.nsw-dark-mode .nsw-card__head h2,
.nsw-dark-mode .nsw-wallet h2,
.nsw-wallet.nsw-dark-mode .nsw-card__head h2,
.nsw-wallet.nsw-dark-mode h2 {
	color: #F8F9FA !important;
}

.nsw-dark-mode .nsw-card__head p,
.nsw-wallet.nsw-dark-mode .nsw-card__head p {
	color: #94a3b8 !important;
}

.nsw-dark-mode .nsw-field-label,
.nsw-dark-mode .nsw-field__label,
.nsw-wallet.nsw-dark-mode .nsw-field-label,
.nsw-wallet.nsw-dark-mode .nsw-field__label {
	color: #F8F9FA !important;
}

.nsw-dark-mode .nsw-field__label--split small,
.nsw-wallet.nsw-dark-mode .nsw-field__label--split small {
	color: #94a3b8 !important;
}

.nsw-dark-mode .nsw-card__icon--bolt,
.nsw-wallet.nsw-dark-mode .nsw-card__icon--bolt {
	background: rgba(245, 158, 11, 0.18) !important;
	color: #fbbf24 !important;
}

.nsw-dark-mode .nsw-card__icon--history,
.nsw-wallet.nsw-dark-mode .nsw-card__icon--history {
	background: rgba(99, 102, 241, 0.18) !important;
	color: #818cf8 !important;
}

.nsw-dark-mode .nsw-card__icon--chart,
.nsw-wallet.nsw-dark-mode .nsw-card__icon--chart {
	background: rgba(124, 58, 237, 0.18) !important;
	color: #c084fc !important;
}

.nsw-dark-mode .nsw-card__icon--gift,
.nsw-wallet.nsw-dark-mode .nsw-card__icon--gift {
	background: rgba(16, 185, 129, 0.18) !important;
	color: #34d399 !important;
}

.nsw-dark-mode .nsw-card__icon--shield,
.nsw-wallet.nsw-dark-mode .nsw-card__icon--shield {
	background: rgba(16, 185, 129, 0.18) !important;
	color: #34d399 !important;
}

/* —— 3. Action Deck Pills —— */
.nsw-dark-mode .nsw-action-pill,
.nsw-wallet.nsw-dark-mode .nsw-action-pill {
	background: #1D2630 !important;
	border: 1.5px solid #334155 !important;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25) !important;
}

.nsw-dark-mode .nsw-action-pill:hover,
.nsw-wallet.nsw-dark-mode .nsw-action-pill:hover {
	background: #24303f !important;
	border-color: #475569 !important;
	box-shadow: 0 8px 22px rgba(0, 0, 0, 0.4) !important;
}

.nsw-dark-mode .nsw-action-pill__text,
.nsw-wallet.nsw-dark-mode .nsw-action-pill__text {
	color: #e2e8f0 !important;
}

.nsw-dark-mode .nsw-action-pill__ico.is-transfer,
.nsw-wallet.nsw-dark-mode .nsw-action-pill__ico.is-transfer {
	background: rgba(37, 99, 235, 0.2) !important;
	color: #60a5fa !important;
}

.nsw-dark-mode .nsw-action-pill__ico.is-withdraw,
.nsw-wallet.nsw-dark-mode .nsw-action-pill__ico.is-withdraw {
	background: rgba(22, 163, 74, 0.2) !important;
	color: #4ade80 !important;
}

.nsw-dark-mode .nsw-action-pill__ico.is-ledger,
.nsw-wallet.nsw-dark-mode .nsw-action-pill__ico.is-ledger {
	background: rgba(124, 58, 237, 0.2) !important;
	color: #c084fc !important;
}

.nsw-dark-mode .nsw-action-pill__ico.is-coupon,
.nsw-wallet.nsw-dark-mode .nsw-action-pill__ico.is-coupon {
	background: rgba(234, 88, 12, 0.2) !important;
	color: #fb923c !important;
}

.nsw-dark-mode .nsw-action-pill__ico.is-support,
.nsw-wallet.nsw-dark-mode .nsw-action-pill__ico.is-support {
	background: rgba(5, 150, 105, 0.2) !important;
	color: #34d399 !important;
}

.nsw-dark-mode .nsw-action-deck.nsw-action-deck--duo .nsw-action-pill,
.nsw-wallet.nsw-dark-mode .nsw-action-deck.nsw-action-deck--duo .nsw-action-pill {
	background: #1D2630 !important;
	border-color: #334155 !important;
}

.nsw-dark-mode .nsw-action-deck.nsw-action-deck--duo .nsw-action-pill:hover,
.nsw-wallet.nsw-dark-mode .nsw-action-deck.nsw-action-deck--duo .nsw-action-pill:hover {
	background: #24303f !important;
}

/* —— 4. Sub-Balances Vaults Stack —— */
.nsw-dark-mode .nsw-vault-card,
.nsw-wallet.nsw-dark-mode .nsw-vault-card {
	background: #1D2630 !important;
	border-color: #334155 !important;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2) !important;
}

.nsw-dark-mode .nsw-vault-card:hover,
.nsw-wallet.nsw-dark-mode .nsw-vault-card:hover {
	background: #24303f !important;
	border-color: #475569 !important;
}

.nsw-dark-mode .nsw-vault-title,
.nsw-wallet.nsw-dark-mode .nsw-vault-title {
	color: #94a3b8 !important;
}

.nsw-dark-mode .nsw-vault-amount strong,
.nsw-wallet.nsw-dark-mode .nsw-vault-amount strong {
	color: #F8F9FA !important;
}

.nsw-dark-mode .nsw-vault-amount small,
.nsw-wallet.nsw-dark-mode .nsw-vault-amount small {
	color: #94a3b8 !important;
}

.nsw-dark-mode .nsw-vault-badge,
.nsw-wallet.nsw-dark-mode .nsw-vault-badge {
	background: #24303f !important;
	color: #cbd5e1 !important;
}

.nsw-dark-mode .nsw-vault-card.is-cash .nsw-vault-icon,
.nsw-wallet.nsw-dark-mode .nsw-vault-card.is-cash .nsw-vault-icon {
	background: rgba(16, 185, 129, 0.2) !important;
	color: #34d399 !important;
}

.nsw-dark-mode .nsw-vault-card.is-gift .nsw-vault-icon,
.nsw-wallet.nsw-dark-mode .nsw-vault-card.is-gift .nsw-vault-icon {
	background: rgba(124, 58, 237, 0.2) !important;
	color: #c084fc !important;
}

.nsw-dark-mode .nsw-vault-expiry,
.nsw-wallet.nsw-dark-mode .nsw-vault-expiry {
	background: rgba(245, 158, 11, 0.15) !important;
	color: #fbbf24 !important;
	border-color: rgba(245, 158, 11, 0.35) !important;
}

.nsw-dark-mode .nsw-vault-card.is-status,
.nsw-wallet.nsw-dark-mode .nsw-vault-card.is-status {
	background: linear-gradient(135deg, #1D2630 0%, #162a24 100%) !important;
	border-color: rgba(16, 185, 129, 0.3) !important;
}

.nsw-dark-mode .nsw-vault-card.is-status .nsw-vault-icon,
.nsw-wallet.nsw-dark-mode .nsw-vault-card.is-status .nsw-vault-icon {
	background: rgba(16, 185, 129, 0.2) !important;
	color: #34d399 !important;
}

/* —— 5. Quick Presets —— */
.nsw-dark-mode .nsw-quick__btn,
.nsw-wallet.nsw-dark-mode .nsw-quick__btn {
	background: #24303f !important;
	border: 1.5px solid #334155 !important;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2) !important;
}

.nsw-dark-mode .nsw-quick__btn:hover,
.nsw-wallet.nsw-dark-mode .nsw-quick__btn:hover {
	background: #2c3b4e !important;
	border-color: #475569 !important;
}

.nsw-dark-mode .nsw-quick__amount,
.nsw-wallet.nsw-dark-mode .nsw-quick__amount {
	color: #F8F9FA !important;
}

.nsw-dark-mode .nsw-quick__cur,
.nsw-wallet.nsw-dark-mode .nsw-quick__cur {
	color: #94a3b8 !important;
}

.nsw-dark-mode .nsw-quick__btn.is-active,
.nsw-dark-mode .nsw-quick__btn.is-suggested.is-active,
.nsw-wallet.nsw-dark-mode .nsw-quick__btn.is-active,
.nsw-wallet.nsw-dark-mode .nsw-quick__btn.is-suggested.is-active {
	background: linear-gradient(135deg, var(--nsw-primary, #630ed4) 0%, var(--nsw-secondary, #8b5cf6) 100%) !important;
	border-color: transparent !important;
	color: #ffffff !important;
	box-shadow: 0 10px 24px -6px rgba(0, 0, 0, 0.6) !important;
}

.nsw-dark-mode .nsw-quick__btn.is-active .nsw-quick__amount,
.nsw-dark-mode .nsw-quick__btn.is-active .nsw-quick__cur,
.nsw-wallet.nsw-dark-mode .nsw-quick__btn.is-active .nsw-quick__amount,
.nsw-wallet.nsw-dark-mode .nsw-quick__btn.is-active .nsw-quick__cur {
	color: #ffffff !important;
}

.nsw-dark-mode .nsw-quick__tag.is-suggested,
.nsw-wallet.nsw-dark-mode .nsw-quick__tag.is-suggested {
	background: #f59e0b !important;
	color: #ffffff !important;
}

.nsw-dark-mode .nsw-quick__tag.is-gift,
.nsw-wallet.nsw-dark-mode .nsw-quick__tag.is-gift {
	background: #10b981 !important;
	color: #ffffff !important;
}

/* —— 6. Custom Amount Input Box & Bumps —— */
.nsw-dark-mode .nsw-amount-input-box,
.nsw-wallet.nsw-dark-mode .nsw-amount-input-box {
	background: #18222d !important;
	border: 1.5px solid #334155 !important;
	box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2) !important;
}

.nsw-dark-mode .nsw-amount-input-box:focus-within,
.nsw-wallet.nsw-dark-mode .nsw-amount-input-box:focus-within {
	border-color: var(--nsw-primary, #8b5cf6) !important;
	box-shadow: 0 0 0 4px rgba(99, 14, 212, 0.25) !important;
}

.nsw-dark-mode .nsw-amount-input-box input,
.nsw-wallet.nsw-dark-mode .nsw-amount-input-box input {
	color: #F8F9FA !important;
}

.nsw-dark-mode .nsw-amount-input-badge,
.nsw-wallet.nsw-dark-mode .nsw-amount-input-badge {
	background: #24303f !important;
	color: #94a3b8 !important;
}

.nsw-dark-mode .nsw-bump,
.nsw-wallet.nsw-dark-mode .nsw-bump {
	background: #24303f !important;
	border-color: #334155 !important;
	color: #38bdf8 !important;
}

.nsw-dark-mode .nsw-bump:hover,
.nsw-wallet.nsw-dark-mode .nsw-bump:hover {
	background: #2c3b4e !important;
	border-color: #475569 !important;
	color: #ffffff !important;
}

.nsw-dark-mode .nsw-bumps-label,
.nsw-wallet.nsw-dark-mode .nsw-bumps-label {
	color: #94a3b8 !important;
}

/* —— 7. Top-Up Reward Banner —— */
.nsw-dark-mode .nsw-topup-reward-banner,
.nsw-wallet.nsw-dark-mode .nsw-topup-reward-banner {
	background: linear-gradient(135deg, rgba(16, 185, 129, 0.12) 0%, rgba(6, 78, 59, 0.35) 100%) !important;
	border-color: rgba(16, 185, 129, 0.35) !important;
}

.nsw-dark-mode .nsw-topup-reward-banner__title,
.nsw-wallet.nsw-dark-mode .nsw-topup-reward-banner__title {
	color: #34d399 !important;
}

.nsw-dark-mode .nsw-topup-reward-banner__desc,
.nsw-wallet.nsw-dark-mode .nsw-topup-reward-banner__desc {
	color: #94a3b8 !important;
}

.nsw-dark-mode .nsw-topup-reward-val,
.nsw-wallet.nsw-dark-mode .nsw-topup-reward-val {
	color: #34d399 !important;
}

.nsw-dark-mode .nsw-topup-reward-badge,
.nsw-wallet.nsw-dark-mode .nsw-topup-reward-badge {
	background: rgba(16, 185, 129, 0.2) !important;
	border-color: rgba(16, 185, 129, 0.35) !important;
	color: #34d399 !important;
}

/* —— 8. Limits, Trustline & Hints —— */
.nsw-dark-mode .nsw-topup-limits,
.nsw-wallet.nsw-dark-mode .nsw-topup-limits {
	color: #94a3b8 !important;
}

.nsw-dark-mode .nsw-trustline,
.nsw-wallet.nsw-dark-mode .nsw-trustline {
	border-top-color: #334155 !important;
}

.nsw-dark-mode .nsw-trustline span,
.nsw-dark-mode .nsw-trustline__item,
.nsw-wallet.nsw-dark-mode .nsw-trustline span,
.nsw-wallet.nsw-dark-mode .nsw-trustline__item {
	color: #94a3b8 !important;
}

.nsw-dark-mode .nsw-hint,
.nsw-wallet.nsw-dark-mode .nsw-hint {
	color: #94a3b8 !important;
}

/* —— 9. Transaction History Rows —— */
.nsw-dark-mode .nsw-tx,
.nsw-wallet.nsw-dark-mode .nsw-tx {
	background: #24303f !important;
	border-color: #334155 !important;
}

.nsw-dark-mode .nsw-tx:hover,
.nsw-wallet.nsw-dark-mode .nsw-tx:hover {
	background: #2c3b4e !important;
	border-color: #475569 !important;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3) !important;
}

.nsw-dark-mode .nsw-tx__meta strong,
.nsw-wallet.nsw-dark-mode .nsw-tx__meta strong {
	color: #F8F9FA !important;
}

.nsw-dark-mode .nsw-tx__meta small,
.nsw-wallet.nsw-dark-mode .nsw-tx__meta small {
	color: #94a3b8 !important;
}

.nsw-dark-mode .nsw-tx-expiry--active,
.nsw-wallet.nsw-dark-mode .nsw-tx-expiry--active {
	background: rgba(245, 158, 11, 0.15) !important;
	color: #fbbf24 !important;
	border-color: rgba(245, 158, 11, 0.35) !important;
}

.nsw-dark-mode .nsw-tx-expiry-date,
.nsw-wallet.nsw-dark-mode .nsw-tx-expiry-date {
	color: #fbbf24 !important;
}

.nsw-dark-mode .nsw-tx.is-credit .nsw-tx__amount,
.nsw-wallet.nsw-dark-mode .nsw-tx.is-credit .nsw-tx__amount {
	color: #34d399 !important;
}

.nsw-dark-mode .nsw-tx.is-debit .nsw-tx__amount,
.nsw-wallet.nsw-dark-mode .nsw-tx.is-debit .nsw-tx__amount {
	color: #f87171 !important;
}

.nsw-dark-mode .nsw-tx__badge,
.nsw-wallet.nsw-dark-mode .nsw-tx__badge {
	background: rgba(16, 185, 129, 0.2) !important;
	color: #34d399 !important;
}

.nsw-dark-mode .nsw-tx.is-debit .nsw-tx__badge,
.nsw-wallet.nsw-dark-mode .nsw-tx.is-debit .nsw-tx__badge {
	background: rgba(239, 68, 68, 0.2) !important;
	color: #f87171 !important;
}

/* —— 10. Security & Direct Support Card —— */
.nsw-dark-mode .nsw-card--support,
.nsw-wallet.nsw-dark-mode .nsw-card--support {
	background: #1D2630 !important;
	border-color: #334155 !important;
}

.nsw-dark-mode .nsw-support__item,
.nsw-wallet.nsw-dark-mode .nsw-support__item {
	background: #24303f !important;
	border-color: #334155 !important;
}

.nsw-dark-mode .nsw-support__item strong,
.nsw-wallet.nsw-dark-mode .nsw-support__item strong {
	color: #F8F9FA !important;
}

.nsw-dark-mode .nsw-support__item small,
.nsw-wallet.nsw-dark-mode .nsw-support__item small {
	color: #94a3b8 !important;
}

.nsw-dark-mode .nsw-support__item .material-symbols-outlined,
.nsw-wallet.nsw-dark-mode .nsw-support__item .material-symbols-outlined {
	color: #34d399 !important;
}

/* —— 11. Monthly Analytics Card —— */
.nsw-dark-mode .nsw-month__box,
.nsw-wallet.nsw-dark-mode .nsw-month__box {
	background: #24303f !important;
	border-color: #334155 !important;
}

.nsw-dark-mode .nsw-month__box.is-in,
.nsw-wallet.nsw-dark-mode .nsw-month__box.is-in {
	background: rgba(16, 185, 129, 0.12) !important;
	border-color: rgba(16, 185, 129, 0.3) !important;
}

.nsw-dark-mode .nsw-month__box.is-out,
.nsw-wallet.nsw-dark-mode .nsw-month__box.is-out {
	background: rgba(236, 72, 153, 0.12) !important;
	border-color: rgba(236, 72, 153, 0.3) !important;
}

.nsw-dark-mode .nsw-month__box-content small,
.nsw-wallet.nsw-dark-mode .nsw-month__box-content small {
	color: #94a3b8 !important;
}

.nsw-dark-mode .nsw-month__box-content strong,
.nsw-wallet.nsw-dark-mode .nsw-month__box-content strong {
	color: #F8F9FA !important;
}

.nsw-dark-mode .nsw-month__box-content strong small,
.nsw-wallet.nsw-dark-mode .nsw-month__box-content strong small {
	color: #94a3b8 !important;
}

.nsw-dark-mode .nsw-month__progress-wrap,
.nsw-wallet.nsw-dark-mode .nsw-month__progress-wrap {
	background: #24303f !important;
	border-color: #334155 !important;
}

.nsw-dark-mode .nsw-month__progress-label,
.nsw-wallet.nsw-dark-mode .nsw-month__progress-label {
	color: #94a3b8 !important;
}

.nsw-dark-mode .nsw-month__bar,
.nsw-wallet.nsw-dark-mode .nsw-month__bar {
	background: #334155 !important;
}

/* —— 12. Inputs, Tables, Modals & Other Tabs —— */
.nsw-dark-mode .nsw-field input,
.nsw-dark-mode .nsw-field select,
.nsw-dark-mode .nsw-field textarea,
.nsw-wallet.nsw-dark-mode .nsw-field input,
.nsw-wallet.nsw-dark-mode .nsw-field select,
.nsw-wallet.nsw-dark-mode .nsw-field textarea {
	background: #18222d !important;
	border-color: #334155 !important;
	color: #F8F9FA !important;
}

.nsw-dark-mode .nsw-field input:focus,
.nsw-dark-mode .nsw-field select:focus,
.nsw-dark-mode .nsw-field textarea:focus,
.nsw-wallet.nsw-dark-mode .nsw-field input:focus,
.nsw-wallet.nsw-dark-mode .nsw-field select:focus,
.nsw-wallet.nsw-dark-mode .nsw-field textarea:focus {
	border-color: var(--nsw-primary, #8b5cf6) !important;
	box-shadow: 0 0 0 3px rgba(99, 14, 212, 0.25) !important;
}

.nsw-dark-mode .nsw-lookup-row,
.nsw-wallet.nsw-dark-mode .nsw-lookup-row {
	background: #18222d !important;
	border-color: #334155 !important;
}

.nsw-dark-mode .nsw-lookup-row input,
.nsw-wallet.nsw-dark-mode .nsw-lookup-row input {
	color: #F8F9FA !important;
}

.nsw-dark-mode .nsw-amount-inline,
.nsw-wallet.nsw-dark-mode .nsw-amount-inline {
	background: #18222d !important;
	border-color: #334155 !important;
}

.nsw-dark-mode .nsw-amount-inline input,
.nsw-wallet.nsw-dark-mode .nsw-amount-inline input {
	color: #F8F9FA !important;
}

.nsw-dark-mode .nsw-amount-box,
.nsw-wallet.nsw-dark-mode .nsw-amount-box {
	background: #18222d !important;
	border-color: #334155 !important;
}

.nsw-dark-mode .nsw-amount-box__row input,
.nsw-wallet.nsw-dark-mode .nsw-amount-box__row input {
	color: #F8F9FA !important;
}

.nsw-dark-mode .nsw-search,
.nsw-wallet.nsw-dark-mode .nsw-search {
	background: #18222d !important;
	border-color: #334155 !important;
}

.nsw-dark-mode .nsw-search input,
.nsw-wallet.nsw-dark-mode .nsw-search input {
	color: #F8F9FA !important;
	background: transparent !important;
}

.nsw-dark-mode .nsw-filter,
.nsw-wallet.nsw-dark-mode .nsw-filter {
	background: #24303f !important;
	border-color: #334155 !important;
	color: #94a3b8 !important;
}

.nsw-dark-mode .nsw-filter:hover,
.nsw-wallet.nsw-dark-mode .nsw-filter:hover {
	background: #2c3b4e !important;
	color: #F8F9FA !important;
}

.nsw-dark-mode .nsw-filter.is-active,
.nsw-wallet.nsw-dark-mode .nsw-filter.is-active {
	background: linear-gradient(135deg, var(--nsw-primary, #630ed4) 0%, var(--nsw-secondary, #8b5cf6) 100%) !important;
	color: #ffffff !important;
	border-color: transparent !important;
}

.nsw-dark-mode .nsw-table,
.nsw-wallet.nsw-dark-mode .nsw-table {
	border-color: #334155 !important;
}

.nsw-dark-mode .nsw-table th,
.nsw-wallet.nsw-dark-mode .nsw-table th {
	background: #18222d !important;
	color: #94a3b8 !important;
	border-bottom-color: #334155 !important;
}

.nsw-dark-mode .nsw-table td,
.nsw-wallet.nsw-dark-mode .nsw-table td {
	border-bottom-color: #334155 !important;
	color: #F8F9FA !important;
}

.nsw-dark-mode .nsw-table tr:hover td,
.nsw-wallet.nsw-dark-mode .nsw-table tr:hover td {
	background: #24303f !important;
}

.nsw-dark-mode .nsw-pagination button,
.nsw-wallet.nsw-dark-mode .nsw-pagination button {
	background: #24303f !important;
	border-color: #334155 !important;
	color: #F8F9FA !important;
}

.nsw-dark-mode .nsw-pagination button.is-active,
.nsw-wallet.nsw-dark-mode .nsw-pagination button.is-active {
	background: var(--nsw-primary, #630ed4) !important;
	color: #ffffff !important;
	border-color: transparent !important;
}

.nsw-dark-mode .nsw-modal,
.nsw-dark-mode .nsw-modal__content,
.nsw-wallet.nsw-dark-mode .nsw-modal,
.nsw-wallet.nsw-dark-mode .nsw-modal__content {
	background: #1D2630 !important;
	border-color: #334155 !important;
	color: #F8F9FA !important;
}

.nsw-dark-mode .nsw-ticket,
.nsw-wallet.nsw-dark-mode .nsw-ticket {
	background: #24303f !important;
	border-color: #334155 !important;
}

.nsw-dark-mode .nsw-ticket__code,
.nsw-wallet.nsw-dark-mode .nsw-ticket__code {
	background: #18222d !important;
	color: #38bdf8 !important;
	border-color: #334155 !important;
}

.nsw-dark-mode .nsw-ref-code,
.nsw-wallet.nsw-dark-mode .nsw-ref-code {
	background: #18222d !important;
	border-color: #334155 !important;
}

.nsw-dark-mode .nsw-ref-code span,
.nsw-wallet.nsw-dark-mode .nsw-ref-code span {
	color: #F8F9FA !important;
}

.nsw-dark-mode .nsw-mini-stat,
.nsw-wallet.nsw-dark-mode .nsw-mini-stat {
	background: #18222d !important;
	border-color: #334155 !important;
}

.nsw-dark-mode .nsw-mini-stat__item,
.nsw-wallet.nsw-dark-mode .nsw-mini-stat__item {
	background: #24303f !important;
	border-color: #334155 !important;
}

.nsw-dark-mode .nsw-mini-stat__item strong,
.nsw-wallet.nsw-dark-mode .nsw-mini-stat__item strong {
	color: #F8F9FA !important;
}

.nsw-dark-mode .nsw-empty,
.nsw-wallet.nsw-dark-mode .nsw-empty {
	color: #94a3b8 !important;
}

.nsw-dark-mode .nsw-info-banner,
.nsw-wallet.nsw-dark-mode .nsw-info-banner {
	background: rgba(99, 14, 212, 0.15) !important;
	border-color: rgba(99, 14, 212, 0.35) !important;
}

.nsw-dark-mode .nsw-info-banner p,
.nsw-wallet.nsw-dark-mode .nsw-info-banner p {
	color: #94a3b8 !important;
}

.nsw-dark-mode .nsw-login-prompt,
.nsw-wallet.nsw-dark-mode .nsw-login-prompt {
	background: #1D2630 !important;
	border-color: #334155 !important;
	color: #94a3b8 !important;
}

/* Ensure clean transparent host container */
.nsw-dark-mode .user_nirwallet_box,
.nsw-dark-mode .nsw-wallet-host,
.user_nirwallet_box.nsw-dark-mode {
	background: transparent !important;
	border-color: transparent !important;
}

.nsw-dark-mode .user_nirwallet_box h4,
.user_nirwallet_box.nsw-dark-mode h4 {
	color: #F8F9FA !important;
}




/* Coupon Waterfall Layout Enhancements */
.nsw-card--promo-hero {
	margin-bottom: 1.25rem;
	background: var(--nsw-card, #ffffff);
	border: 1px solid var(--nsw-line, #e2e8f0);
}

.nsw-coupon-steps--grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
	margin: 1.15rem 0 0;
	padding: 0;
	list-style: none;
}

@media (max-width: 768px) {
	.nsw-coupon-steps--grid {
		grid-template-columns: 1fr;
		gap: 0.75rem;
	}
}

.nsw-coupon-steps--grid li {
	background: var(--nsw-surface, #f8fafc);
	border: 1px solid var(--nsw-line, #e2e8f0);
	border-radius: var(--nsw-radius-sm, 12px);
	padding: 1.1rem 1rem;
	display: flex;
	align-items: flex-start;
	gap: 0.85rem;
	transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.nsw-coupon-steps--grid li:hover {
	border-color: rgba(var(--nsw-primary-rgb, 99, 14, 212), 0.45);
	background: #ffffff;
	transform: translateY(-2px);
	box-shadow: 0 8px 20px -4px rgba(var(--nsw-primary-rgb, 99, 14, 212), 0.12);
}

.nsw-coupon-steps--grid .nsw-coupon-steps__n {
	width: 32px;
	height: 32px;
	border-radius: 999px;
	display: grid;
	place-items: center;
	background: var(--nsw-primary-soft, #ede9fe);
	color: var(--nsw-primary, #630ed4);
	font-size: 13px;
	font-weight: 800;
	flex-shrink: 0;
	box-shadow: 0 2px 6px rgba(var(--nsw-primary-rgb, 99, 14, 212), 0.15);
}

.nsw-coupon-steps--grid strong {
	display: block;
	font-size: 13.5px;
	font-weight: 800;
	color: var(--nsw-text, #0f172a);
	margin-bottom: 0.25rem;
}

.nsw-coupon-steps--grid small {
	display: block;
	color: var(--nsw-muted, #64748b);
	font-size: 12px;
	line-height: 1.55;
}

.nsw-card--create-coupon {
	margin-top: 1.25rem;
}
