/* ============================================================================
   NEUMORPHIC PRO — GLOSSY GLASS edition. Frosted-glass surfaces, warm gradient
   backdrop, high-gloss gradient buttons + shine highlights. Loaded after
   nova.css + lumen.css; retunes the shared --nv-* / --neu-* tokens so every
   page (shell + all bespoke pages) turns glossy at once.
   ========================================================================== */

/* ---------------- tokens (light) ---------------- */
:root{
	--nv-bg:#f0edfb;
	--nv-surface:rgba(255,255,255,.60);
	--nv-surface-2:rgba(255,255,255,.42);
	--nv-border:rgba(255,255,255,.75);
	--nv-text:#2a2740;
	--nv-muted:#7c7a96;
	--nv-accent-ring:color-mix(in srgb,var(--nv-accent,#6C5CE7) 42%,transparent);
	--glass-blur:blur(18px) saturate(1.35);
	--glass-hi:rgba(255,255,255,.78);            /* top glass highlight */
	--neu-sd:rgba(96,88,150,.26);
	--neu-rise:0 14px 34px -14px var(--neu-sd),0 3px 8px -3px rgba(96,88,150,.14),inset 0 1px 0 var(--glass-hi);
	--neu-rise-sm:0 8px 20px -10px var(--neu-sd),inset 0 1px 0 var(--glass-hi);
	--neu-inset:inset 0 2px 7px rgba(96,88,150,.18),inset 0 1px 0 rgba(255,255,255,.55);
	--neu-inset-sm:inset 0 1px 4px rgba(96,88,150,.16);
	--nv-sh-lg:var(--neu-rise); --nv-sh:var(--neu-rise-sm);
	/* glossy accent gradient: lighter sheen on top -> accent at the base */
	--neu-grad:linear-gradient(180deg,color-mix(in srgb,var(--nv-accent,#6C5CE7) 74%,#fff) 0%,var(--nv-accent,#6C5CE7) 55%,color-mix(in srgb,var(--nv-accent,#6C5CE7) 88%,#000) 100%);
	--lm-grad:var(--neu-grad);
	--btn-hi:inset 0 1px 0 rgba(255,255,255,.55),inset 0 -2px 6px rgba(0,0,0,.14);
	--neu-r:20px; --neu-r-sm:14px;
}
/* ---------------- tokens (dark) ---------------- */
html.nv-dark,.nv-dark{
	--nv-bg:#1a1c26;
	--nv-surface:rgba(42,45,60,.56);
	--nv-surface-2:rgba(42,45,60,.4);
	--nv-border:rgba(255,255,255,.10);
	--nv-text:#e9ebf4;
	--nv-muted:#9aa0b6;
	--glass-hi:rgba(255,255,255,.10);
	--neu-sd:rgba(0,0,0,.55);
	--neu-rise:0 16px 38px -16px var(--neu-sd),0 3px 8px -3px rgba(0,0,0,.4),inset 0 1px 0 var(--glass-hi);
	--neu-rise-sm:0 9px 22px -11px var(--neu-sd),inset 0 1px 0 var(--glass-hi);
	--neu-inset:inset 0 2px 8px rgba(0,0,0,.44),inset 0 1px 0 rgba(255,255,255,.05);
	--neu-inset-sm:inset 0 1px 5px rgba(0,0,0,.4);
}

/* ---------------- warm gradient backdrop ---------------- */
body{
	background:linear-gradient(135deg,#fdeadf 0%,#f4eefb 44%,#e7f1fd 100%) fixed;
	font-family:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}
html.nv-dark body{background:linear-gradient(135deg,#191b24 0%,#1f1c2b 50%,#171f2e 100%) fixed}
/* soft colour blobs for depth */
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
	background:radial-gradient(42vw 42vw at 12% -6%,rgba(255,170,120,.30),transparent 60%),
	          radial-gradient(38vw 38vw at 96% 8%,rgba(120,140,255,.24),transparent 62%),
	          radial-gradient(46vw 40vw at 82% 100%,rgba(196,150,255,.20),transparent 60%)}
html.nv-dark body::before{background:radial-gradient(42vw 42vw at 12% -6%,rgba(255,140,90,.14),transparent 60%),radial-gradient(38vw 38vw at 96% 8%,rgba(90,110,255,.16),transparent 62%),radial-gradient(46vw 40vw at 82% 100%,rgba(150,110,255,.14),transparent 60%)}

/* ---------------- the glass card family ---------------- */
.nv-card,.lm-card,.nv-panel,.nv-tile,.card,
.neu-stat,.neu-compose,.neu-summary,.neu-news,.neu-hi,.neu-hero-bal,
.ord-card,.pay-card,.lm-pay,.dash-stat,.svc-card,.ao-card,.tx-card,.rr-card,.live-c,.trust-c,.cat-card,.lm-tl-item,
.lm-side-balance,.nv-dd-menu,.nv-menu,.nv-pop,.nv-catdd-menu,.nv-catdd-btn,.nv-srch-menu{
	-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
	border:1px solid var(--nv-border)!important;
}
.nv-card,.lm-card,.nv-panel,.nv-tile,.card{background:var(--nv-surface)!important;border-radius:var(--neu-r)!important;box-shadow:var(--neu-rise)!important}

/* ---------------- sidebar / topbar (glass) ---------------- */
.nv-sidebar{background:rgba(255,255,255,.5)!important;-webkit-backdrop-filter:blur(22px) saturate(1.4);backdrop-filter:blur(22px) saturate(1.4);border-right:1px solid rgba(255,255,255,.55)!important;box-shadow:12px 0 40px -26px var(--neu-sd)}
html.nv-dark .nv-sidebar{background:rgba(26,28,40,.55)!important;border-right-color:rgba(255,255,255,.07)!important}
.nv-topbar{background:rgba(255,255,255,.42)!important;-webkit-backdrop-filter:blur(20px) saturate(1.4);backdrop-filter:blur(20px) saturate(1.4);border-bottom:1px solid rgba(255,255,255,.5)!important;box-shadow:0 10px 30px -24px var(--neu-sd)}
html.nv-dark .nv-topbar{background:rgba(24,26,38,.5)!important;border-bottom-color:rgba(255,255,255,.07)!important}
.nv-topbar .nv-page-title{color:var(--nv-text)}
#nvBurger,.nv-icon-btn,.nv-iconbtn,.nv-topbar .nv-ib,.lm-theme-btn,#lmThemeBtn{background:var(--nv-surface)!important;border:1px solid var(--nv-border)!important;border-radius:13px!important;box-shadow:var(--neu-rise-sm)!important;color:var(--nv-muted)!important;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}
#nvBurger:active,.nv-icon-btn:active,.lm-theme-btn:active{box-shadow:var(--neu-inset-sm)!important}
.lm-side-balance,.nv-side-balance{background:var(--neu-grad)!important;border:0!important;box-shadow:var(--neu-rise)!important;color:#fff}

/* nav */
.nv-nav a,.nv-nav>a,.nv-nav .nv-sub a{border-radius:13px;font-weight:700;transition:box-shadow .16s,color .16s,background .16s}
.nv-nav a:hover{background:rgba(255,255,255,.5);color:var(--nv-text)}
html.nv-dark .nv-nav a:hover{background:rgba(255,255,255,.06)}
.nv-nav a.active,.nv-nav a.on{background:var(--neu-grad)!important;color:#fff!important;box-shadow:var(--neu-rise-sm),var(--btn-hi)!important}
.nv-nav a.active i,.nv-nav a.on i{color:#fff!important}

/* dropdowns / popovers — near-opaque so content never bleeds through */
.nv-dd-menu,.nv-menu,.nv-pop{background:rgba(255,255,255,.94)!important;border-radius:18px!important;box-shadow:var(--neu-rise)!important;-webkit-backdrop-filter:blur(20px) saturate(1.4);backdrop-filter:blur(20px) saturate(1.4)}
html.nv-dark .nv-dd-menu,html.nv-dark .nv-menu{background:rgba(34,37,50,.95)!important}

/* ---------------- glossy buttons ---------------- */
.nv-btn,.btn,button.nv-btn{border:1px solid var(--nv-border);border-radius:14px;font-weight:800;font-family:inherit;background:var(--nv-surface);color:var(--nv-text);box-shadow:var(--neu-rise-sm);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);transition:transform .15s cubic-bezier(.34,1.56,.64,1),box-shadow .16s,filter .16s}
.nv-btn:hover,.btn:hover{transform:translateY(-1px);filter:brightness(1.03)}
.nv-btn:active,.btn:active{box-shadow:var(--neu-inset-sm);transform:translateY(0)}
.nv-btn-primary,.nv-btn.primary,.btn-primary,.nv-btn-accent,.nv-btn.pri,.neu-submit,.pay-card.active{background:var(--neu-grad)!important;color:#fff!important;border:0!important;box-shadow:var(--neu-rise-sm),var(--btn-hi)!important}
.nv-btn-primary:hover,.btn-primary:hover,.neu-submit:hover{filter:brightness(1.06)}
/* the top-sheen streak that reads as "shiny" */
.nv-btn-primary,.btn-primary,.neu-submit,.neu-seg-b.active,.lm-fab,.band .btn,.neu-hero-bal{position:relative;overflow:hidden;isolation:isolate}
.nv-btn-primary::after,.btn-primary::after,.neu-submit::after,.neu-seg-b.active::after,.lm-fab::after{content:"";position:absolute;left:0;right:0;top:0;height:45%;background:linear-gradient(180deg,rgba(255,255,255,.42),rgba(255,255,255,0));pointer-events:none;z-index:-1}

/* form controls (inset glass) */
.nv-content input:not([type=checkbox]):not([type=radio]):not([type=range]),
.nv-content select,.nv-content textarea,.nv-input,.lm-input,.form-control{
	background:rgba(255,255,255,.45)!important;border:1px solid var(--nv-border)!important;border-radius:14px!important;color:var(--nv-text)!important;
	box-shadow:var(--neu-inset)!important;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);outline:none;transition:box-shadow .18s}
html.nv-dark .nv-content input,html.nv-dark .nv-content select,html.nv-dark .nv-content textarea{background:rgba(20,22,32,.4)!important}
.nv-content input:focus,.nv-content select:focus,.nv-content textarea:focus,.nv-input:focus,.form-control:focus{box-shadow:var(--neu-inset),0 0 0 3px var(--nv-accent-ring)!important}

/* badges / tabs / tables */
.nv-badge,.badge,.nv-pill,.lm-chip{border-radius:99px;font-weight:800}
.nv-tabs,.nv-seg,.lm-seg{background:rgba(255,255,255,.4);border-radius:15px;box-shadow:var(--neu-inset-sm);padding:5px;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}
.nv-tabs a.active,.nv-seg .on,.lm-seg .on{background:var(--neu-grad);color:#fff;box-shadow:var(--neu-rise-sm),var(--btn-hi);border-radius:11px}
.nv-table th,.lm-table th{background:transparent;color:var(--nv-muted);font-weight:800;border:0}
.nv-table td,.lm-table td{border:0;border-bottom:1px solid var(--nv-border)}
.nv-table tr:hover td{background:rgba(255,255,255,.35)}

/* bottom nav + FAB */
.nv-bottomnav{background:rgba(255,255,255,.62)!important;-webkit-backdrop-filter:blur(20px) saturate(1.4);backdrop-filter:blur(20px) saturate(1.4);border-top:1px solid rgba(255,255,255,.6)!important;box-shadow:0 -12px 34px -22px var(--neu-sd)}
html.nv-dark .nv-bottomnav{background:rgba(24,26,38,.68)!important;border-top-color:rgba(255,255,255,.07)!important}
.nv-bottomnav a{color:var(--nv-muted);font-weight:700}
.nv-bottomnav a.active{color:var(--nv-accent,#6C5CE7)}
.lm-fab{background:var(--neu-grad)!important;box-shadow:var(--neu-rise),var(--btn-hi)!important;border:0!important}

/* ---------------- colourful icon system (kept) ---------------- */
.neu-ic{width:44px;height:44px;flex:none;border-radius:14px;display:inline-grid;place-items:center;color:#fff;font-size:18px;box-shadow:var(--neu-rise-sm),var(--btn-hi);position:relative;overflow:hidden}
.neu-ic::after{content:"";position:absolute;left:0;right:0;top:0;height:48%;background:linear-gradient(180deg,rgba(255,255,255,.4),transparent);pointer-events:none}
.neu-ic--1{background:linear-gradient(160deg,#7d6cff,#6C5CE7)}
.neu-ic--2{background:linear-gradient(160deg,#43b0ff,#0984E3)}
.neu-ic--3{background:linear-gradient(160deg,#3ee0b3,#00B894)}
.neu-ic--4{background:linear-gradient(160deg,#ff9a76,#E17055)}
.neu-ic--5{background:linear-gradient(160deg,#ff6fb2,#E84393)}
.neu-ic--6{background:linear-gradient(160deg,#ffca5f,#F5A623)}
.neu-ic--7{background:linear-gradient(160deg,#4fe9e4,#00CEC9)}
.neu-ic--8{background:linear-gradient(160deg,#c3befe,#A29BFE)}
.neu-ic--9{background:linear-gradient(160deg,#ffa3c6,#FD79A8)}
.neu-ic--10{background:linear-gradient(160deg,#5fe39a,#20BF6B)}
.neu-ic--11{background:linear-gradient(160deg,#ff7089,#EB3B5A)}
.neu-ic--12{background:linear-gradient(160deg,#66bff0,#2D98DA)}
.neu-ic--13{background:linear-gradient(160deg,#b085f0,#8854D0)}
.neu-ic--14{background:linear-gradient(160deg,#ffd36b,#F7B731)}
.neu-ic--15{background:linear-gradient(160deg,#66f0a9,#26DE81)}
.neu-ic--16{background:linear-gradient(160deg,#ff8a91,#FC5C65)}
.neu-ic--17{background:linear-gradient(160deg,#7cc7ff,#45AAF2)}
.neu-ic--18{background:linear-gradient(160deg,#ffe677,#FED330)}
.neu-brand-instagram{background:linear-gradient(135deg,#833AB4,#E4405F,#FCAF45)!important;color:#fff!important}
.neu-brand-youtube{background:#FF0000!important;color:#fff!important}
.neu-brand-tiktok{background:#010101!important;color:#fff!important}
.neu-brand-facebook{background:#1877F2!important;color:#fff!important}
.neu-brand-telegram{background:#229ED9!important;color:#fff!important}
.neu-brand-twitter,.neu-brand-x{background:#010101!important;color:#fff!important}
.neu-brand-spotify{background:#1DB954!important;color:#fff!important}
.neu-brand-whatsapp{background:#25D366!important;color:#fff!important}

/* colourful sidebar menu icons (neu.js adds .neu-nav-ic + a .neu-ic--N colour) */
.nv-nav a i.neu-nav-ic{width:30px;height:30px;border-radius:9px;display:inline-grid!important;place-items:center;color:#fff!important;font-size:12.5px;line-height:1;box-shadow:var(--neu-rise-sm),var(--btn-hi);flex:none;position:relative;overflow:hidden;transition:transform .15s cubic-bezier(.34,1.56,.64,1)}
.nv-nav a:hover i.neu-nav-ic{transform:scale(1.09)}
.nv-nav a i.neu-nav-ic::after{content:"";position:absolute;left:0;right:0;top:0;height:48%;background:linear-gradient(180deg,rgba(255,255,255,.42),transparent);pointer-events:none;border-radius:9px 9px 0 0}

/* entrance anim + scrollbar */
.neu-reveal{opacity:0;transform:translateY(16px)}
.neu-in{animation:neu-rise .5s cubic-bezier(.34,1.56,.64,1) both}
@keyframes neu-rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.nv-content ::-webkit-scrollbar{width:10px;height:10px}
.nv-content ::-webkit-scrollbar-thumb{background:rgba(150,140,190,.4);border-radius:99px;border:2px solid transparent;background-clip:padding-box}
/* mobile: sidebar becomes an off-canvas drawer over content -> make it opaque */
@media(max-width:860px){
	.nv-sidebar{background:rgba(255,255,255,.95)!important}
	html.nv-dark .nv-sidebar{background:rgba(23,25,36,.97)!important}
}

/* ---------- KILL horizontal overflow (grid/flex children must be allowed to shrink) ---------- */
.nv-content{overflow-x:clip}
.neu-order,.neu-order>div,.neu-compose,.neu-side,.neu-summary,.neu-news,.neu-hero,.neu-hero-l,.neu-stats,.dash-stats{min-width:0;max-width:100%}
.neu-compose form,.neu-compose .neu-fld,.neu-search,.neu-plats,.ord-card,.ord-head,.ord-svc{min-width:0;max-width:100%}
.neu-fld .nv-select,.neu-fld input,.neu-fld textarea,.neu-search input,#neworder_fields input,#neworder_fields select,#neworder_fields textarea{max-width:100%}
.neu-hero h1,.neu-hero p{min-width:0;overflow-wrap:anywhere}
@media(max-width:940px){ .neu-order{grid-template-columns:1fr!important} .neu-side{position:static!important} }
@media(max-width:600px){ .neu-compose{padding:16px} .neu-sum-b .row b{max-width:58%} }

/* ---------- glossy floating bottom nav (mobile) ---------- */
@media(max-width:860px){
	.nv-bottomnav{left:12px!important;right:12px!important;bottom:12px!important;height:auto!important;border-radius:22px!important;padding:7px 8px!important;gap:2px;background:rgba(255,255,255,.74)!important;-webkit-backdrop-filter:blur(24px) saturate(1.6);backdrop-filter:blur(24px) saturate(1.6);border:1px solid rgba(255,255,255,.7)!important;box-shadow:0 16px 38px -14px rgba(96,88,150,.5),inset 0 1px 0 rgba(255,255,255,.85)!important}
	html.nv-dark .nv-bottomnav{background:rgba(28,30,42,.82)!important;border-color:rgba(255,255,255,.08)!important}
	.nv-bottomnav a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:8px 2px;border-radius:15px;font-size:10px;font-weight:800;color:var(--nv-muted);min-width:0}
	.nv-bottomnav a i{font-size:17px}
	.nv-bottomnav a.active{color:#fff!important;background:var(--neu-grad);box-shadow:var(--neu-rise-sm),var(--btn-hi)}
	.nv-bottomnav a.active i{color:#fff!important}
	.nv-bottomnav .lm-fab-slot{display:none!important}
	/* the old floating quick-order FAB is removed from the footer; hide any stray one */
	.lm-fab{display:none!important}
	/* center + button IN the bar (elevated, protruding) -> New Order */
	.nv-bottomnav .nv-bn-plus{flex:0 0 auto!important;margin:-24px 6px 0!important;width:56px;height:56px;padding:0!important;border-radius:50%!important;background:var(--neu-grad)!important;color:#fff!important;display:grid!important;place-items:center;box-shadow:0 15px 28px -8px var(--nv-accent-ring),var(--btn-hi)!important;align-self:center;border:3px solid rgba(255,255,255,.7)!important}
	html.nv-dark .nv-bottomnav .nv-bn-plus{border-color:rgba(255,255,255,.12)!important}
	.nv-bottomnav .nv-bn-plus i{color:#fff!important;font-size:20px}
	.nv-bottomnav .nv-bn-plus.active{color:#fff!important}
	/* daily-reward FAB: shrink + lift above the floating bar */
	#drFab{transform:scale(.62)!important;transform-origin:bottom left!important;left:6px!important;right:auto!important;bottom:82px!important;z-index:999}
}
@media (prefers-reduced-motion:reduce){.neu-in{animation:none!important}.neu-reveal{opacity:1;transform:none}}

/* NAVFIX: submenu icons get the same tile as parents, one size down. The indent
   drops from 42px because a 30px tile behind a 42px pad pushed the label off-panel. */
.nv-nav .nv-sub-m>a i.neu-nav-ic{width:26px;height:26px;font-size:11px;border-radius:8px}
.nv-nav .nv-sub-m>a{padding-left:16px!important}
