/* ============================================================================
   NinjaView Dashboard — WEB3 skin overlay (additive; loads AFTER dashboard.css)
   Re-skins the v3.0 dashboard to match the Chrome extension, evolved to a
   web3 aesthetic: glass panels, blue->violet->cyan gradients, soft neon glow.
   Non-destructive: only overrides tokens + layers effects onto existing
   .nv-* classes. To revert, remove the <link> in page-dashboard.php.
   ============================================================================ */

/* ---- retuned tokens (bridge extension DNA + web3) ---- */
:root{
  --nv-bg:#07070d;
  --nv-bg-card:rgba(20,22,38,.55);
  --nv-bg-card-hover:rgba(30,33,56,.62);
  --nv-border:rgba(120,130,200,.14);
  --nv-border-accent:rgba(130,140,248,.40);
  --nv-text:#e9eaf3;
  --nv-text-muted:#9aa0bd;
  --nv-text-dim:#5b5f80;
  --nv-accent:#6f7cf7;
  --nv-accent-hover:#a78bfa;
  --nv-accent-glow:rgba(111,124,247,.30);
  --nv-green:#34d399;
  --nv-red:#fb5b6d;
  --nv-amber:#fbbf24;
  --nv-cyan:#22d3ee;
  --nv-radius:18px;
  --nv-radius-sm:11px;
  --nv-grad:linear-gradient(100deg,#4a90e2,#6f7cf7 45%,#a78bfa 75%,#22d3ee);
  --nv-grad-soft:linear-gradient(135deg,rgba(111,124,247,.18),rgba(34,211,238,.10));
  --nv-glow:0 0 0 1px rgba(130,140,248,.10),0 10px 44px -14px rgba(90,80,220,.45);
}

/* ---- ambient glow field + tech grid behind everything ---- */
.nv-dashboard-body{background:var(--nv-bg);position:relative}
.nv-dashboard-body::before{content:'';position:fixed;inset:0;z-index:0;pointer-events:none;background:
  radial-gradient(60vw 50vh at 12% -5%,rgba(111,124,247,.15),transparent 60%),
  radial-gradient(50vw 40vh at 100% 0%,rgba(34,211,238,.09),transparent 55%),
  radial-gradient(60vw 60vh at 82% 112%,rgba(167,139,250,.11),transparent 60%)}
.nv-dashboard-body::after{content:'';position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.3;
  background-image:linear-gradient(rgba(130,140,220,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(130,140,220,.05) 1px,transparent 1px);
  background-size:46px 46px;-webkit-mask:radial-gradient(85vw 80vh at 50% 0%,#000,transparent 82%);
          mask:radial-gradient(85vw 80vh at 50% 0%,#000,transparent 82%)}
.nv-dashboard,.nv-auth-gate{position:relative;z-index:1}

/* ---- glass card mixin applied to all panels/cards ---- */
.nv-kpi-card,.nv-stat-card,.nv-chart-card,.nv-auth-card,.nv-plan-card,
.nv-referral-link-box,.nv-account-row,.nv-webhook-url-box{
  background:var(--nv-bg-card)!important;
  border:1px solid var(--nv-border)!important;
  border-radius:var(--nv-radius)!important;
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  box-shadow:var(--nv-glow);
  position:relative;overflow:hidden;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
/* gradient hairline on top-left corner of each card */
.nv-kpi-card::before,.nv-stat-card::before,.nv-chart-card::before,.nv-auth-card::before,.nv-plan-card::before{
  content:'';position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;
  background:linear-gradient(140deg,rgba(130,140,248,.5),transparent 42%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;opacity:.55;
}
.nv-kpi-card:hover,.nv-stat-card:hover,.nv-chart-card:hover{
  transform:translateY(-2px);
  border-color:var(--nv-border-accent)!important;
  box-shadow:0 0 0 1px rgba(130,140,248,.18),0 16px 50px -16px rgba(100,90,230,.6);
}

/* ---- sidebar: glass + gradient brand + glowing active ---- */
.nv-sidebar{
  background:linear-gradient(180deg,rgba(16,18,32,.72),rgba(10,11,20,.72))!important;
  -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);
  border-right:1px solid var(--nv-border)!important;
}
.nv-sidebar-brand{font-weight:800;letter-spacing:-.4px}
.nv-sidebar-brand,.nv-sidebar-brand *{
  background:var(--nv-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.nv-sidebar-tag{color:var(--nv-text-dim);letter-spacing:.14em;text-transform:uppercase}
.nv-sidebar-link{border-radius:11px!important;transition:.16s;position:relative}
.nv-sidebar-link:hover{background:rgba(120,130,220,.07)!important;color:var(--nv-text)!important}
.nv-sidebar-link.active{
  color:#fff!important;background:var(--nv-grad-soft)!important;
  box-shadow:inset 0 0 0 1px var(--nv-border-accent);
}
.nv-sidebar-link.active::before{
  content:'';position:absolute;left:-8px;top:9px;bottom:9px;width:3px;border-radius:3px;
  background:var(--nv-grad);box-shadow:0 0 12px 1px rgba(111,124,247,.9);
}
.nv-sidebar-footer{background:var(--nv-bg-card)!important;border:1px solid var(--nv-border)!important;border-radius:12px}

/* ---- panel header title gets a gradient accent ---- */
.nv-panel-header h1{letter-spacing:-.6px}
.nv-panel-header h1::after{
  content:'';display:block;width:56px;height:3px;margin-top:8px;border-radius:3px;background:var(--nv-grad);
  box-shadow:0 0 14px -2px rgba(111,124,247,.8);
}
.nv-header-actions select{
  background:var(--nv-bg-card)!important;border:1px solid var(--nv-border)!important;
  border-radius:10px!important;color:var(--nv-text)!important;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
}

/* ---- KPI / stat numbers: gradient + mono ---- */
.nv-kpi-value,.nv-stat-value{font-family:var(--nv-mono,'JetBrains Mono',monospace)!important;letter-spacing:-1px}
.nv-kpi-value:not(.positive):not(.negative),.nv-stat-value:not(.nv-green):not(.nv-red){
  background:var(--nv-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.nv-kpi-value.positive,.nv-stat-value.nv-green{
  background:linear-gradient(90deg,#34d399,#22d3ee);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent!important;
}
.nv-kpi-label{letter-spacing:.1em;text-transform:uppercase;color:var(--nv-text-dim)}

/* ---- tier badges & buttons: gradient + glow ---- */
.nv-tier-badge.pro,.nv-tier-badge.lifetime{
  background:var(--nv-grad)!important;color:#fff!important;box-shadow:0 4px 14px -5px rgba(111,124,247,.9);
}
.nv-copy-btn,.nv-main button:not(.nv-sidebar-link),.nv-auth-card button[type=submit]{
  border-radius:10px!important;transition:.16s;
}
.nv-copy-btn,.nv-auth-card button[type=submit]{
  background:var(--nv-grad)!important;color:#fff!important;border:0!important;
  box-shadow:0 6px 20px -8px rgba(111,124,247,.9);
}
.nv-copy-btn:hover,.nv-auth-card button[type=submit]:hover{filter:brightness(1.08);transform:translateY(-1px)}

/* ---- webhook / api key box: neon mono ---- */
.nv-webhook-url-box{background:rgba(7,8,16,.6)!important}
.nv-webhook-url-box code{font-family:var(--nv-mono,'JetBrains Mono',monospace)!important;color:var(--nv-cyan)!important}

/* ---- tables: glass header + row-hover glow ---- */
.nv-main table{border-collapse:collapse}
.nv-main table thead th{
  color:var(--nv-text-dim)!important;text-transform:uppercase;letter-spacing:.08em;font-size:.68rem;
  border-bottom:1px solid var(--nv-border)!important;
}
.nv-main table tbody td{border-bottom:1px solid rgba(120,130,200,.06)!important;font-family:var(--nv-mono,'JetBrains Mono',monospace)}
.nv-main table tbody tr{transition:.14s}
.nv-main table tbody tr:hover{background:rgba(111,124,247,.06)!important}

/* ---- inputs focus glow ---- */
.nv-form-group input:focus,.nv-form-group select:focus{
  border-color:var(--nv-border-accent)!important;box-shadow:0 0 0 3px var(--nv-accent-glow);
}

/* ---- auth gate card matches web3 ---- */
.nv-auth-card{padding:40px 32px}
.nv-auth-card h2{background:var(--nv-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

/* ============================================================================
   V2 ENHANCEMENTS (2026-07-28) — push the skin to match the preview:
   stronger glass, brighter ambient glow, tighter sidebar, bigger KPI numbers.
   Appended last so these win on equal specificity.
   ============================================================================ */

/* Brighter, clearly-visible ambient glow field */
.nv-dashboard-body::before{
  background:
    radial-gradient(55vw 46vh at 10% -6%, rgba(111,124,247,.30), transparent 58%),
    radial-gradient(48vw 38vh at 102% 2%, rgba(34,211,238,.18), transparent 55%),
    radial-gradient(60vw 60vh at 84% 114%, rgba(167,139,250,.24), transparent 60%) !important;
}
.nv-dashboard-body{background:radial-gradient(120vw 90vh at 50% -10%, #0d0f22, #07070d 70%)!important}

/* Cards: stronger frosted glass + brighter gradient edge + resting glow */
.nv-kpi-card,.nv-stat-card,.nv-chart-card,.nv-auth-card,.nv-plan-card,
.nv-referral-link-box,.nv-account-row,.nv-webhook-url-box{
  background:linear-gradient(160deg, rgba(30,33,58,.62), rgba(16,18,34,.52))!important;
  -webkit-backdrop-filter:blur(22px) saturate(1.2);backdrop-filter:blur(22px) saturate(1.2);
  box-shadow:0 0 0 1px rgba(130,140,248,.10), 0 18px 50px -18px rgba(90,80,220,.55),
             inset 0 1px 0 rgba(255,255,255,.04)!important;
}
.nv-kpi-card::before,.nv-stat-card::before,.nv-chart-card::before{
  background:linear-gradient(135deg, rgba(140,150,255,.75), rgba(34,211,238,.25) 38%, transparent 65%)!important;
  opacity:.8!important;
}

/* KPI numbers: bigger + bolder */
.nv-kpi-value{font-size:2.15rem!important;font-weight:700!important;letter-spacing:-1.2px!important;line-height:1.1!important}
.nv-kpi-card{padding:22px 22px!important}
.nv-kpi-label{font-size:.7rem!important;letter-spacing:.12em!important}

/* Sidebar: tighter, smaller icons, glass, stronger glowing active rail */
.nv-sidebar{width:230px!important;padding-top:8px}
.nv-sidebar-icon{font-size:1rem!important;width:20px!important;height:20px!important;display:inline-flex!important;
  align-items:center;justify-content:center;opacity:.85;flex-shrink:0}
.nv-sidebar-link{padding:10px 13px!important;margin:2px 8px!important;border-radius:11px!important;font-size:.9rem!important;gap:11px!important}
.nv-sidebar-nav{gap:2px!important}
.nv-sidebar-link.active{
  background:linear-gradient(135deg, rgba(111,124,247,.22), rgba(34,211,238,.10))!important;
  box-shadow:inset 0 0 0 1px rgba(130,140,248,.45)!important;
}
.nv-sidebar-link.active::before{
  content:'';position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;
  background:var(--nv-grad);box-shadow:0 0 14px 2px rgba(111,124,247,.95);
}
.nv-sidebar-brand{font-size:1.25rem!important}
.nv-sidebar-tag{background:var(--nv-grad)!important;-webkit-background-clip:border-box!important;background-clip:border-box!important;
  -webkit-text-fill-color:#fff!important;color:#fff!important;padding:1px 8px;border-radius:20px;font-size:.62rem;box-shadow:0 3px 10px -3px rgba(111,124,247,.9)}

/* Panel title bigger with the gradient underline */
.nv-panel-header h1{font-size:1.7rem!important;font-weight:800!important;letter-spacing:-.6px!important}

/* Date selector pill */
.nv-header-actions select{padding:8px 14px!important;border-radius:11px!important;box-shadow:0 6px 18px -8px rgba(90,80,220,.5)}

/* ============================================================================
   V3 (2026-07-28) — SIDEBAR FIX: the live icons are inline <svg class="nv-sidebar-svg">,
   NOT a .nv-sidebar-icon glyph. Target the real elements + match the preview.
   ============================================================================ */
.nv-sidebar-svg{width:19px!important;height:19px!important;opacity:.78;flex-shrink:0;transition:.15s}
.nv-sidebar-link{color:var(--nv-text-muted)!important;gap:12px!important}
.nv-sidebar-link:hover .nv-sidebar-svg{opacity:1}
.nv-sidebar-link.active{color:#fff!important}
.nv-sidebar-link.active .nv-sidebar-svg{opacity:1!important;color:#aeb6ff!important;
  filter:drop-shadow(0 0 6px rgba(111,124,247,.95))}

/* Brand: full gradient wordmark (live uses .nv-logo inside .nv-sidebar-brand) */
.nv-sidebar-brand .nv-logo,.nv-sidebar-brand .nv-logo span{
  background:var(--nv-grad)!important;-webkit-background-clip:text!important;background-clip:text!important;
  -webkit-text-fill-color:transparent!important;color:transparent!important;font-weight:800!important;letter-spacing:-.4px}

/* Tag pill: gradient (was flat accent) */
.nv-sidebar-tag{background:var(--nv-grad)!important;color:#fff!important;border-radius:20px!important;
  padding:2px 10px!important;box-shadow:0 3px 10px -3px rgba(111,124,247,.9);letter-spacing:.06em}

/* Sidebar itself: glass + the glowing active rail (reasserted at full strength) */
.nv-sidebar{background:linear-gradient(180deg,rgba(16,18,32,.85),rgba(10,11,20,.85))!important;
  -webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}
.nv-sidebar-link.active{
  background:linear-gradient(135deg,rgba(111,124,247,.20),rgba(34,211,238,.08))!important;
  box-shadow:inset 0 0 0 1px rgba(130,140,248,.42)!important;position:relative}
.nv-sidebar-link.active::before{
  content:'';position:absolute;left:0;top:7px;bottom:7px;width:3px;border-radius:0 3px 3px 0;
  background:var(--nv-grad);box-shadow:0 0 14px 2px rgba(111,124,247,.95)}
.nv-sidebar-svg.nv-sidebar-icon,.nv-sidebar-icon{font-size:.9rem!important;width:19px!important;height:19px!important}
