/* Chunav Mitra — Admin dashboard styles (extracted from index.html) */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --blue:#0A3D91;--blue-mid:#1552B8;--blue-light:#D6E4FB;--blue-pale:#EEF4FF;
  --green:#138808;--green-light:#D4EDD4;
  --saffron:#FF9933;--saff-light:#FFF3E0;
  --red:#DC2626;--red-light:#FEF2F2;
  --amber:#D97706;--amber-light:#FFFBEB;
  --cyan:#0891B2;--cyan-light:#E0F7FA;
  /* Refined dark palette — slightly cooler & deeper, more "premium" feel */
  --sidebar-bg:#0a111d;
  --bg:#0c1422;            /* page background base                              */
  --surface:#141d2e;       /* primary panel/card                                */
  --surface2:#1a2538;      /* secondary surface (inputs, hovers, alternate rows)*/
  --surface3:#1f2c43;      /* tertiary (chips, segmented controls)              */
  --border:#243149;        /* subtle hairline                                   */
  --border2:#314261;       /* slightly stronger border                          */
  --text:#eef2f8;
  --text2:#a8b3c7;
  --text3:#6f7d96;
  --sidebar:264px;--topbar:62px;--radius:13px;--radius-sm:9px;
}
html,body{
  height:100%;overflow:hidden;
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  color:var(--text);font-size:14px;
  /* Subtle radial vignette — gives depth without being noisy */
  background:
    radial-gradient(1200px 800px at 75% -10%,  rgba(31,77,158,0.10), transparent 60%),
    radial-gradient(900px  600px at 10% 110%, rgba(252,195,0,0.04), transparent 55%),
    var(--bg);
  background-attachment:fixed;
}

/* ── LAYOUT ── */
.layout{display:flex;height:100vh}

/* ── SIDEBAR ── */
.sidebar{width:var(--sidebar);height:100vh;background:var(--sidebar-bg);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0}
.sb-logo{padding:18px 18px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:center}
.sb-logo-img{max-width:100%;height:auto;max-height:64px;display:block;object-fit:contain}
.candidate-pill{margin:12px 12px 0;background:linear-gradient(135deg,#062870,var(--blue));border-radius:10px;padding:12px;position:relative;overflow:hidden}
.candidate-pill::before{content:'';position:absolute;top:-16px;right:-16px;width:64px;height:64px;background:rgba(255,255,255,0.04);border-radius:50%}
.cand-name{font-size:12px;font-weight:700;color:#fff}
.cand-role{font-size:10px;color:rgba(255,255,255,0.55);margin-top:2px}
.cand-badge{display:inline-flex;align-items:center;gap:4px;background:rgba(255,255,255,0.12);color:rgba(255,255,255,0.85);padding:3px 8px;border-radius:20px;font-size:9px;font-weight:600;margin-top:8px}
.live-dot{width:5px;height:5px;background:#4ADE80;border-radius:50%;animation:blink 1.5s infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0.3}}
.sb-nav{flex:1;overflow-y:auto;padding:10px 10px 20px;scrollbar-width:none}
.sb-nav::-webkit-scrollbar{display:none}

/* Section header — subtle separator + uppercase label */
.nav-sec{
  font-size:10px;font-weight:700;letter-spacing:1.3px;
  color:var(--text3);text-transform:uppercase;
  padding:0 12px 6px;margin:18px 0 6px;
  position:relative;
  display:flex;align-items:center;gap:8px;
}
.nav-sec::after{
  content:'';flex:1;height:1px;
  background:linear-gradient(90deg,var(--border) 0%,transparent 100%);
}
.nav-sec:first-child{margin-top:6px}

/* Item — bigger tap target + smoother hover */
.nav-item{
  display:flex;align-items:center;gap:10px;
  padding:10px 12px;border-radius:10px;
  cursor:pointer;transition:background .15s,transform .12s;
  margin-bottom:3px;border:1px solid transparent;
  position:relative;user-select:none;
}
.nav-item:hover{
  background:var(--surface2);
}
.nav-item:hover .nav-icon{
  background:var(--surface3);transform:scale(1.04);
}
.nav-item:active{transform:translateY(1px)}

/* Active state — left accent bar + tinted background */
.nav-item.active{
  background:linear-gradient(90deg,rgba(10,61,145,0.32),rgba(10,61,145,0.10));
  border-color:rgba(10,61,145,0.40);
}
.nav-item.active::before{
  content:'';position:absolute;left:0;top:8px;bottom:8px;width:3px;
  background:linear-gradient(180deg,#6EA8FE,var(--blue));
  border-radius:0 3px 3px 0;
}

/* Icon — slightly bigger + brand-tinted on active */
.nav-icon{
  width:32px;height:32px;border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  font-size:15px;flex-shrink:0;
  background:var(--surface2);
  transition:background .15s,transform .12s;
}
.nav-item.active .nav-icon{
  background:linear-gradient(135deg,rgba(110,168,254,0.30),rgba(10,61,145,0.45));
  box-shadow:0 0 0 1px rgba(110,168,254,0.30);
}

/* Label */
.nav-label{
  font-size:12.5px;font-weight:500;color:var(--text2);flex:1;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.nav-item:hover .nav-label{color:var(--text)}
.nav-item.active .nav-label{color:#fff;font-weight:600}

/* Chip — small count next to label */
.nav-chip{
  background:var(--surface3);color:var(--text2);
  font-size:9.5px;font-weight:700;letter-spacing:.3px;
  padding:2px 7px;border-radius:100px;min-width:18px;text-align:center;
}
.nav-item.active .nav-chip{
  background:rgba(110,168,254,0.35);color:#fff;
}
.nav-chip.red{
  background:rgba(248,113,113,0.22);color:#FCA5A5;
  box-shadow:0 0 0 1px rgba(248,113,113,0.30);
}
.nav-item.active .nav-chip.red{
  background:#F87171;color:#fff;
}
.sb-footer{padding:12px;border-top:1px solid var(--border)}
.logout-btn{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s;border:1px solid var(--border2);background:transparent;width:100%;color:var(--red)}
.logout-btn:hover{background:var(--red-light);border-color:rgba(220,38,38,0.3)}
.logout-btn .nav-icon{background:var(--red-light)}

/* ── MAIN ── */
.main{flex:1;display:flex;flex-direction:column;overflow:hidden}
.topbar{height:var(--topbar);background:var(--sidebar-bg);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 24px;gap:14px;flex-shrink:0}
.topbar-title{font-size:18px;font-weight:700;flex:1}
.topbar-sub{font-size:11px;color:var(--text3);margin-top:1px}
.topbar-pills{display:flex;align-items:center;gap:8px}
.pill-btn{display:flex;align-items:center;gap:5px;background:var(--surface2);border:1px solid var(--border2);border-radius:20px;padding:6px 12px;font-size:11px;font-weight:600;color:var(--text2);cursor:pointer;transition:all .2s}
.pill-btn:hover{border-color:rgba(10,61,145,0.5);color:var(--text)}
.pill-btn.live{border-color:rgba(74,222,128,0.4);color:#4ADE80}
.avatar-btn{width:34px;height:34px;background:linear-gradient(135deg,var(--blue),var(--blue-mid));border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:14px;cursor:pointer;border:1px solid var(--border2)}
.content{flex:1;overflow-y:auto;padding:22px 24px;scrollbar-width:thin;scrollbar-color:var(--surface3) transparent}
.content::-webkit-scrollbar{width:4px}
.content::-webkit-scrollbar-thumb{background:var(--surface3);border-radius:10px}
.page{display:none}
.page.active{display:block;animation:pgIn .2s ease}
@keyframes pgIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}

/* ── KPI CARDS ── */
.kpi-row{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:20px}
.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;position:relative;overflow:hidden;transition:all .25s}
.kpi:hover{border-color:var(--border2);transform:translateY(-2px)}
.kpi::before{content:'';position:absolute;top:0;left:0;right:0;height:2px}
.kpi.blue::before{background:linear-gradient(90deg,var(--blue),var(--blue-mid))}
.kpi.green::before{background:linear-gradient(90deg,var(--green),#22C55E)}
.kpi.orange::before{background:linear-gradient(90deg,var(--saffron),#FCD34D)}
.kpi.red::before{background:linear-gradient(90deg,var(--red),#F97316)}
.kpi.cyan::before{background:linear-gradient(90deg,var(--cyan),#818CF8)}
.kpi-label{font-size:10px;font-weight:700;color:var(--text3);letter-spacing:0.6px;text-transform:uppercase;margin-bottom:8px}
.kpi-num{font-size:30px;font-weight:800;line-height:1;letter-spacing:-0.5px;margin-bottom:6px}
.kpi-num.blue{color:#6EA8FE}.kpi-num.green{color:#4ADE80}.kpi-num.orange{color:var(--saffron)}.kpi-num.red{color:#F87171}.kpi-num.cyan{color:var(--cyan)}
.kpi-bar{height:3px;background:var(--surface3);border-radius:100px;overflow:hidden;margin-top:2px}
.kpi-bar-fill{height:100%;border-radius:100px;transition:width 1.2s ease}
.kpi-delta{font-size:10px;color:var(--text3);margin-top:5px}
.kpi-delta .up{color:#4ADE80}.kpi-delta .dn{color:#F87171}
/* new KPI colour variants */
.kpi.purple::before{background:linear-gradient(90deg,#7C3AED,#A78BFA)}
.kpi-num.purple{color:#A78BFA}
.kpi.teal::before{background:linear-gradient(90deg,#0D9488,#2DD4BF)}
.kpi-num.teal{color:#2DD4BF}
/* ── Dashboard Module Intelligence Panels ── */
.dash-intel-wrap{margin-top:24px}
.dash-intel-header{
  display:flex;align-items:center;gap:14px;margin-bottom:16px;
}
.dash-intel-title{
  font-size:13px;font-weight:800;letter-spacing:.4px;color:var(--text);
  display:flex;align-items:center;gap:7px;white-space:nowrap;
}
.dash-intel-line{flex:1;height:1px;background:linear-gradient(90deg,var(--border2) 0%,transparent 100%)}
.dash-mod-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.dash-mod-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:18px;
  overflow:hidden;
  cursor:pointer;
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
  position:relative;
  display:flex;flex-direction:column;
}
/* color glow blob — top-right corner */
.dash-mod-card::after{
  content:'';position:absolute;top:-50px;right:-50px;
  width:180px;height:180px;border-radius:50%;
  opacity:.055;pointer-events:none;transition:opacity .25s;
}
.dash-mod-card:hover{
  transform:translateY(-4px);
  border-color:var(--border2);
}
.dash-mod-card.dm-perf::after  {background:#F59E0B}
.dash-mod-card.dm-booth::after {background:#8B5CF6}
.dash-mod-card.dm-battle::after{background:#EF4444}
.dash-mod-card.dm-cluster::after{background:#06B6D4}
.dash-mod-card.dm-gallery::after{background:#EC4899;grid-column:1/-1}
.dash-mod-card.dm-perf:hover  {box-shadow:0 12px 40px rgba(245,158,11,.13)}
.dash-mod-card.dm-booth:hover {box-shadow:0 12px 40px rgba(139,92,246,.13)}
.dash-mod-card.dm-battle:hover{box-shadow:0 12px 40px rgba(239,68,68,.13)}
.dash-mod-card.dm-cluster:hover{box-shadow:0 12px 40px rgba(6,182,212,.13)}
.dash-mod-card.dm-gallery:hover{box-shadow:0 12px 40px rgba(236,72,153,.13)}
.dash-mod-card:hover::after{opacity:.11}
/* top accent bar */
.dash-mod-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;z-index:2;
}
.dm-perf::before  {background:linear-gradient(90deg,#F59E0B,#FBBF24)}
.dm-booth::before {background:linear-gradient(90deg,#8B5CF6,#A78BFA)}
.dm-battle::before{background:linear-gradient(90deg,#EF4444,#F97316)}
.dm-cluster::before{background:linear-gradient(90deg,#06B6D4,#22D3EE)}
.dm-gallery::before{background:linear-gradient(90deg,#EC4899,#F472B6)}
/* header */
.dm-head{
  display:flex;align-items:center;gap:10px;
  padding:16px 18px 13px;
  border-bottom:1px solid var(--border);
  position:relative;z-index:1;
}
.dm-head-badge{
  width:34px;height:34px;border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  font-size:17px;flex-shrink:0;
}
.dm-perf   .dm-head-badge{background:rgba(245,158,11,.15)}
.dm-booth  .dm-head-badge{background:rgba(139,92,246,.15)}
.dm-battle .dm-head-badge{background:rgba(239,68,68,.15)}
.dm-cluster .dm-head-badge{background:rgba(6,182,212,.15)}
.dm-gallery .dm-head-badge{background:rgba(236,72,153,.15)}
.dm-head-title{
  font-size:11px;font-weight:800;text-transform:uppercase;
  letter-spacing:.8px;flex:1;
}
.dm-perf   .dm-head-title{color:#FBBF24}
.dm-booth  .dm-head-title{color:#A78BFA}
.dm-battle .dm-head-title{color:#F87171}
.dm-cluster .dm-head-title{color:#22D3EE}
.dm-gallery .dm-head-title{color:#F9A8D4}
.dm-head-link{
  font-size:10px;font-weight:700;color:var(--text3);
  white-space:nowrap;transition:color .15s;
  padding:4px 10px;border:1px solid var(--border);border-radius:20px;
}
.dash-mod-card:hover .dm-head-link{color:var(--text);border-color:var(--border2)}
/* body */
.dm-body{
  padding:14px 18px 16px;
  display:flex;flex-direction:column;gap:10px;
  flex:1;position:relative;z-index:1;
}
.dm-row{display:flex;align-items:center;gap:10px}
.dm-rank{
  font-size:15px;line-height:1;min-width:20px;text-align:center;flex-shrink:0;
}
.dm-name{
  font-size:13px;font-weight:600;color:var(--text);
  flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.dm-val{
  font-size:12px;font-weight:700;color:var(--text2);
  white-space:nowrap;min-width:36px;text-align:right;
}
.dm-mini-bar{
  height:5px;border-radius:100px;background:var(--surface3);
  overflow:hidden;width:80px;flex-shrink:0;
}
.dm-mini-fill{height:100%;border-radius:100px;transition:width 1.1s cubic-bezier(.4,0,.2,1);width:0}
.dm-perf   .dm-mini-fill{background:linear-gradient(90deg,#F59E0B,#FBBF24)}
.dm-booth  .dm-mini-fill{background:linear-gradient(90deg,#8B5CF6,#A78BFA)}
.dm-battle .dm-mini-fill{background:linear-gradient(90deg,#22C55E,#4ADE80)}
.dm-cluster .dm-mini-fill{background:linear-gradient(90deg,#06B6D4,#22D3EE)}
.dm-gallery .dm-mini-fill{background:linear-gradient(90deg,#EC4899,#F472B6)}
/* stat footer */
.dm-stat{
  display:flex;align-items:baseline;gap:7px;
  padding-top:12px;margin-top:2px;
  border-top:1px solid var(--border);
}
.dm-stat-num{font-size:28px;font-weight:900;line-height:1;letter-spacing:-1px}
.dm-perf   .dm-stat-num{color:#FBBF24;text-shadow:0 0 20px rgba(251,191,36,.35)}
.dm-booth  .dm-stat-num{color:#A78BFA;text-shadow:0 0 20px rgba(167,139,250,.35)}
.dm-battle .dm-stat-num{color:#F87171;text-shadow:0 0 20px rgba(248,113,113,.35)}
.dm-cluster .dm-stat-num{color:#22D3EE;text-shadow:0 0 20px rgba(34,211,238,.35)}
.dm-gallery .dm-stat-num{color:#F9A8D4;text-shadow:0 0 20px rgba(249,168,212,.35)}
.dm-stat-lbl{font-size:11px;color:var(--text3);line-height:1.3}
/* gallery full-width */
.dm-gallery{grid-column:1/-1}
.dm-gallery .dm-body{flex-direction:row;flex-wrap:wrap;gap:14px}
.dm-gallery .dm-body > *{flex:1;min-width:200px}
.dm-gallery .dm-col{display:flex;flex-direction:column;gap:10px}
/* empty */
.dm-empty{font-size:12px;color:var(--text3);text-align:center;padding:24px 0;font-style:italic}

/* ── PANELS ── */
.panel{
  background:
    linear-gradient(180deg,rgba(255,255,255,0.015),transparent 50%),
    var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  overflow:hidden;
  margin-bottom:18px;
  box-shadow:0 1px 0 rgba(255,255,255,0.03) inset, 0 4px 18px rgba(0,0,0,0.18);
}
.panel-head{
  padding:14px 18px;
  border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  background:linear-gradient(180deg,rgba(255,255,255,0.02),transparent);
}
.panel-title{font-size:13px;font-weight:700;display:flex;align-items:center;gap:7px;letter-spacing:.1px}
.panel-actions{display:flex;align-items:center;gap:7px}

/* ── BUTTONS ── */
.btn{padding:7px 14px;border-radius:var(--radius-sm);border:none;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .2s;display:inline-flex;align-items:center;gap:5px}
.btn-primary{background:var(--blue);color:#fff}
.btn-primary:hover{background:var(--blue-mid);box-shadow:0 3px 12px rgba(10,61,145,0.4)}
.btn-ghost{background:transparent;color:var(--text2);border:1px solid var(--border2)}
.btn-ghost:hover{background:var(--surface2);color:var(--text)}
.btn-success{background:rgba(19,136,8,0.2);color:#4ADE80;border:1px solid rgba(19,136,8,0.3)}
.btn-danger{background:var(--red-light);color:#F87171;border:1px solid rgba(220,38,38,0.2)}
.btn-sm{padding:4px 10px;font-size:11px}

/* ── TABLES ── */
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse}
thead tr{
  border-bottom:1px solid var(--border);
  background:linear-gradient(180deg,rgba(255,255,255,0.025),transparent);
}
th{
  padding:12px 14px;text-align:left;font-size:10px;font-weight:700;
  color:var(--text3);letter-spacing:0.7px;text-transform:uppercase;white-space:nowrap;
  position:sticky;top:0;background:var(--surface);
  border-bottom:1px solid var(--border);z-index:2;
}
tbody tr{border-bottom:1px solid rgba(255,255,255,0.04);transition:background .15s}
tbody tr:nth-child(odd){background:rgba(255,255,255,0.015)}
tbody tr:last-child{border-bottom:none}
tbody tr:hover{background:rgba(110,168,254,0.08)}
td{padding:12px 14px;font-size:12px;color:var(--text2);vertical-align:middle}
.td-main{color:var(--text)!important;font-weight:600}

/* ── BADGES ── */
.badge{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:20px;font-size:10px;font-weight:700}
.badge-inc{background:rgba(10,61,145,0.2);color:#6EA8FE;border:1px solid rgba(10,61,145,0.3)}
.badge-bjp{background:rgba(255,153,51,0.15);color:var(--saffron);border:1px solid rgba(255,153,51,0.3)}
.badge-blank{background:var(--surface3);color:var(--text3);border:1px solid var(--border2)}
.badge-green{background:rgba(19,136,8,0.2);color:#4ADE80;border:1px solid rgba(19,136,8,0.3)}
.badge-red{background:var(--red-light);color:#F87171;border:1px solid rgba(220,38,38,0.25)}
.badge-yellow{background:rgba(217,119,6,0.2);color:var(--amber);border:1px solid rgba(217,119,6,0.3)}
.badge-cyan{background:rgba(8,145,178,0.15);color:var(--cyan);border:1px solid rgba(8,145,178,0.3)}

/* ── PROGRESS ── */
.prog{display:flex;align-items:center;gap:8px;min-width:120px}
.prog-track{flex:1;height:5px;background:var(--surface3);border-radius:100px;overflow:hidden}
.prog-fill{height:100%;border-radius:100px}
.prog-lbl{font-size:10px;font-weight:700;min-width:28px;text-align:right}

/* ── GRID LAYOUTS ── */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}
.wide-narrow{display:grid;grid-template-columns:2fr 1fr;gap:14px;margin-bottom:16px}
.three-col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-bottom:16px}

/* ── FILTER ROW ── */
.filter-row{
  display:flex;align-items:center;gap:8px;padding:12px 16px;
  border-bottom:1px solid var(--border);flex-wrap:wrap;
  background:linear-gradient(180deg,rgba(255,255,255,0.015),transparent);
}
.search-inp{
  display:flex;align-items:center;gap:7px;
  background:var(--surface2);border:1px solid var(--border2);
  border-radius:var(--radius-sm);padding:7px 12px;flex:1;min-width:180px;
  transition:border-color .15s,box-shadow .15s;
}
.search-inp:focus-within{
  border-color:rgba(110,168,254,0.5);
  box-shadow:0 0 0 3px rgba(110,168,254,0.10);
}
.search-inp input{background:transparent;border:none;outline:none;font-size:12px;color:var(--text);font-family:inherit;width:100%}
.search-inp input::placeholder{color:var(--text3)}

.filter-sel{
  background:var(--surface2);border:1px solid var(--border2);
  border-radius:var(--radius-sm);padding:7px 12px;
  font-size:12px;color:var(--text2);font-family:inherit;
  outline:none;cursor:pointer;
  transition:border-color .15s,box-shadow .15s,color .15s;
}
.filter-sel:hover{border-color:rgba(110,168,254,0.35);color:var(--text)}
.filter-sel:focus{
  border-color:rgba(110,168,254,0.55);
  box-shadow:0 0 0 3px rgba(110,168,254,0.10);
}

/* ── SPLIT BAR ── */
.split-bar-wrap{padding:14px 18px 8px}
.split-legend{display:flex;justify-content:space-between;font-size:10px;color:var(--text3);margin-bottom:7px}
.split-bar{display:flex;height:24px;border-radius:7px;overflow:hidden}
.split-seg{display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff;transition:flex 1s ease;white-space:nowrap;overflow:hidden}

/* ── STAT INLINE ── */
.inline-stats{display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid var(--border)}
.inline-stat{padding:12px 14px;border-right:1px solid var(--border)}
.inline-stat:last-child{border-right:none}
.inline-stat-num{font-size:20px;font-weight:800;line-height:1;margin-bottom:3px}
.inline-stat-lbl{font-size:9px;color:var(--text3)}

/* ── BAR CHART ── */
.bar-chart{padding:16px 18px;max-height:360px;overflow:hidden}
.bar-row{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.bar-lbl{font-size:11px;color:var(--text2);width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}
.bar-track{flex:1;height:8px;background:var(--surface3);border-radius:100px;overflow:hidden}
.bar-fill{height:100%;border-radius:100px;transition:width 1.2s ease}
.bar-val{font-size:11px;font-weight:700;width:34px;text-align:right;flex-shrink:0}

/* ── ACTIVITY FEED ── */
.activity-feed{}
.act-item{display:flex;align-items:flex-start;gap:12px;padding:10px 18px;border-bottom:1px solid var(--border);transition:background .12s}
.act-item:last-child{border-bottom:none}
.act-item:hover{background:var(--surface2)}
.act-dot{width:7px;height:7px;border-radius:50%;margin-top:4px;flex-shrink:0}
.act-content{flex:1}
.act-text{font-size:12px;color:var(--text2);line-height:1.5}
.act-text strong{color:var(--text);font-weight:600}
.act-time{font-size:10px;color:var(--text3);margin-top:2px}

/* ── BOOTH TILES ── */
.booth-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:16px}
.booth-tile{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px;cursor:pointer;transition:all .2s;position:relative}
.booth-tile:hover{border-color:var(--border2);transform:translateY(-2px);box-shadow:0 4px 20px rgba(0,0,0,.18)}
.booth-tile.good{border-left:3px solid #4ADE80}
.booth-tile.warn{border-left:3px solid var(--saffron)}
.booth-tile.crit{border-left:3px solid var(--red)}
.booth-tile-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.booth-num{font-size:20px;font-weight:800;color:var(--text)}
.booth-dot{width:7px;height:7px;border-radius:50%}
.booth-name-sm{font-size:12px;font-weight:600;color:var(--text);margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.booth-divider{border:none;border-top:1px solid var(--border);margin:8px 0}
.booth-detail-row{display:flex;align-items:flex-start;gap:6px;font-size:11px;margin-bottom:4px}
.booth-detail-lbl{color:var(--text3);min-width:70px;flex-shrink:0}
.booth-detail-val{color:var(--text2);font-weight:500;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.booth-addr{font-size:10px;color:var(--text3);line-height:1.5;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:6px}
.booth-agent{font-size:10px;color:var(--text3);margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ── ISSUE CARDS ── */
.issue-card{display:flex;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border);transition:background .12s}
.issue-card:hover{background:var(--surface2)}
.issue-icon{font-size:22px;flex-shrink:0}
.issue-body{flex:1}
.issue-title{font-size:13px;font-weight:600;color:var(--text);margin-bottom:3px}
.issue-meta{font-size:11px;color:var(--text3)}
.issue-actions{display:flex;flex-direction:column;gap:5px;align-items:flex-end;justify-content:center;flex-shrink:0}

/* ── DONUT ── */
.donut-wrap{display:flex;align-items:center;gap:20px;padding:18px}
.donut{width:120px;height:120px;border-radius:50%;flex-shrink:0;position:relative;display:flex;align-items:center;justify-content:center}
.donut-center{position:absolute;text-align:center}
.donut-num{font-size:22px;font-weight:800;line-height:1}
.donut-lbl{font-size:9px;color:var(--text3);margin-top:2px}
.legend{display:flex;flex-direction:column;gap:10px;flex:1}
.legend-item{display:flex;align-items:center;gap:8px;font-size:11px}
.legend-dot{width:9px;height:9px;border-radius:2px;flex-shrink:0}
.legend-lbl{flex:1;color:var(--text2)}
.legend-val{font-weight:700;color:var(--text)}

/* ═══════════ DASHBOARD V2 — WAR ROOM ═══════════ */
/* Entrance */
@keyframes dxIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes dxPulse{0%,100%{opacity:1}50%{opacity:.55}}

/* ── Hero command strip ── */
.dx-hero{position:relative;display:flex;align-items:center;gap:24px;flex-wrap:wrap;
  padding:20px 26px;margin-bottom:16px;border-radius:18px;overflow:hidden;isolation:isolate;
  background:linear-gradient(115deg,#0b1530 0%,#0e1f4b 38%,#122a63 62%,#0b1530 100%);
  border:1px solid rgba(110,168,254,.20);
  box-shadow:0 20px 50px rgba(3,8,20,.55),inset 0 1px 0 rgba(255,255,255,.05);
  animation:dxIn .45s both}
.dx-hero::before{content:'';position:absolute;inset:0 0 auto 0;height:3px;z-index:2;
  background:linear-gradient(90deg,#FF9933 0%,#FF9933 31%,#f4f6fb 34%,#f4f6fb 49%,#138808 52%,#138808 100%);opacity:.9}
.dx-hero::after{content:'';position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(460px 220px at 16% -10%,rgba(110,168,254,.18),transparent 60%),
    radial-gradient(420px 240px at 88% 130%,rgba(255,153,51,.10),transparent 60%),
    repeating-linear-gradient(0deg,transparent 0 23px,rgba(110,168,254,.05) 23px 24px),
    repeating-linear-gradient(90deg,transparent 0 23px,rgba(110,168,254,.05) 23px 24px)}
.dx-kicker{display:flex;align-items:center;gap:7px;font-size:10px;font-weight:800;letter-spacing:2.2px;color:#FCD34D;text-transform:uppercase;margin-bottom:6px}
.dx-kicker .live-dot{width:7px;height:7px}
.dx-hero-title{font-family:'Manrope',-apple-system,sans-serif;font-size:27px;font-weight:800;letter-spacing:-.7px;line-height:1.05;
  background:linear-gradient(95deg,#ffffff 15%,#b8d2ff 55%,#6EA8FE 95%);-webkit-background-clip:text;background-clip:text;color:transparent}
.dx-hero-sub{font-size:11px;color:var(--text3);margin-top:7px}
.dx-clock-wrap{text-align:center;padding:6px 22px;border-left:1px solid rgba(110,168,254,.14);border-right:1px solid rgba(110,168,254,.14)}
.dx-clock{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:26px;font-weight:800;letter-spacing:-1px;color:#E2ECFF;text-shadow:0 0 24px rgba(110,168,254,.5);white-space:nowrap}
.dx-clock-lbl{font-size:9px;font-weight:800;letter-spacing:2.4px;color:var(--text3);margin-top:3px}
.dx-hero-r{margin-left:auto;display:flex;flex-direction:column;gap:9px;align-items:flex-end}
/* segmented range control */
.dx-seg{display:inline-flex;align-items:center;gap:2px;padding:4px;border-radius:12px;
  background:rgba(5,11,24,.65);border:1px solid rgba(110,168,254,.16);backdrop-filter:blur(6px)}
.dx-seg .btn{border:none!important;background:transparent!important;color:var(--text2)!important;
  font-size:11px;font-weight:700;padding:7px 13px!important;border-radius:9px!important;box-shadow:none!important;letter-spacing:.2px}
.dx-seg .btn:hover{color:#fff!important;background:rgba(110,168,254,.12)!important;transform:none!important}
.dx-seg .btn.btn-primary{background:linear-gradient(135deg,#1552B8,#2563EB)!important;color:#fff!important;
  box-shadow:0 2px 14px rgba(37,99,235,.5)!important}
.dx-seg .filter-sel{background:rgba(255,255,255,.05);border-color:rgba(110,168,254,.2)}
/* hero quick actions */
.dx-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.dx-actions .btn{backdrop-filter:blur(6px)}
.dx-actions .btn-ghost{background:rgba(255,255,255,.05)!important;border:1px solid rgba(110,168,254,.18)!important;color:var(--text2)!important}
.dx-actions .btn-ghost:hover{background:rgba(110,168,254,.14)!important;color:#fff!important;border-color:rgba(110,168,254,.4)!important}
.dx-actions .btn-primary{background:linear-gradient(135deg,#D97706,#FF9933)!important;border:none!important;
  box-shadow:0 4px 18px rgba(255,153,51,.35)!important;font-weight:800}
.dx-actions .btn-primary:hover{box-shadow:0 6px 24px rgba(255,153,51,.5)!important;transform:translateY(-1px)}

/* ── KPI cards (kx) ── */
.dx-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:16px}
@media (max-width:1380px){.dx-kpis{grid-template-columns:repeat(3,1fr)}}
@media (max-width:860px){.dx-kpis{grid-template-columns:repeat(2,1fr)}}
.kx{position:relative;border-radius:16px;padding:17px 18px 15px;cursor:pointer;overflow:hidden;isolation:isolate;
  background:linear-gradient(168deg,rgba(26,38,60,.92),rgba(13,20,34,.96));
  border:1px solid var(--border);
  transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s,border-color .25s;
  animation:dxIn .5s both}
.kx:nth-child(2){animation-delay:.06s}.kx:nth-child(3){animation-delay:.12s}
.kx:nth-child(4){animation-delay:.18s}.kx:nth-child(5){animation-delay:.24s}
.kx::before{content:'';position:absolute;inset:0 0 auto 0;height:2px;background:var(--kx-grad);opacity:.95}
.kx::after{content:'';position:absolute;top:-45%;right:-25%;width:170px;height:170px;border-radius:50%;
  background:var(--kx-halo);filter:blur(42px);opacity:.45;z-index:-1;transition:opacity .3s}
.kx:hover{transform:translateY(-4px);border-color:var(--kx-border);
  box-shadow:0 18px 44px rgba(0,0,0,.5),0 0 30px var(--kx-glow)}
.kx:hover::after{opacity:.75}
.kx-shine{position:absolute;top:0;left:-90%;width:55%;height:100%;z-index:1;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.07),transparent);
  transform:skewX(-20deg);transition:left .65s ease}
.kx:hover .kx-shine{left:135%}
.kx-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}
.kx-lbl{font-size:9.5px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:var(--text3)}
.kx-ico{width:33px;height:33px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:15px;
  background:var(--kx-ico-bg);box-shadow:inset 0 0 0 1px var(--kx-border)}
.kx-num{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:33px;font-weight:800;letter-spacing:-1.6px;line-height:1;
  background:var(--kx-grad);-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 16px var(--kx-glow))}
.kx-bar{height:4px;border-radius:99px;background:rgba(255,255,255,.06);overflow:hidden;margin-top:13px}
.kx-bar>div{height:100%;border-radius:99px;background:var(--kx-grad);box-shadow:0 0 10px var(--kx-glow);
  transition:width 1.2s cubic-bezier(.4,0,.2,1)}
.kx-sub{font-size:10.5px;color:var(--text3);margin-top:8px}
.kx-sub .up{color:#4ADE80;font-weight:800}.kx-sub .dn{color:#F87171;font-weight:800}
.kx.v-purple{--kx-grad:linear-gradient(90deg,#C4B5FD,#8B5CF6);--kx-glow:rgba(167,139,250,.35);--kx-border:rgba(167,139,250,.35);--kx-halo:rgba(124,58,237,.5);--kx-ico-bg:rgba(124,58,237,.16)}
.kx.v-teal  {--kx-grad:linear-gradient(90deg,#5EEAD4,#14B8A6);--kx-glow:rgba(45,212,191,.32);--kx-border:rgba(45,212,191,.35);--kx-halo:rgba(13,148,136,.5);--kx-ico-bg:rgba(13,148,136,.16)}
.kx.v-blue  {--kx-grad:linear-gradient(90deg,#93C5FD,#3B82F6);--kx-glow:rgba(110,168,254,.38);--kx-border:rgba(110,168,254,.4);--kx-halo:rgba(37,99,235,.5);--kx-ico-bg:rgba(37,99,235,.16)}
.kx.v-red   {--kx-grad:linear-gradient(90deg,#FCA5A5,#EF4444);--kx-glow:rgba(248,113,113,.32);--kx-border:rgba(248,113,113,.35);--kx-halo:rgba(239,68,68,.45);--kx-ico-bg:rgba(239,68,68,.15)}
.kx.v-cyan  {--kx-grad:linear-gradient(90deg,#67E8F9,#0891B2);--kx-glow:rgba(34,211,238,.32);--kx-border:rgba(34,211,238,.35);--kx-halo:rgba(8,145,178,.5);--kx-ico-bg:rgba(8,145,178,.16)}

/* ── Dashboard glass panels (scoped) ── */
#page-dash .panel{background:linear-gradient(172deg,rgba(23,33,52,.92),rgba(13,20,34,.95));
  border:1px solid rgba(110,168,254,.11);border-radius:16px;
  box-shadow:0 12px 32px rgba(3,8,20,.35);animation:dxIn .55s both}
#page-dash .panel-title{font-weight:800;letter-spacing:.2px}

/* ── Battle bar (sentiment) ── */
#page-dash .split-bar-wrap{padding:16px 20px 10px}
#page-dash .split-legend{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}
#page-dash .split-legend span{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--text2);
  background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:20px;padding:5px 12px}
#page-dash .split-legend strong{font-family:'JetBrains Mono',monospace;font-size:12px;color:#fff}
#page-dash .split-bar{height:34px;border-radius:12px;overflow:hidden;box-shadow:inset 0 2px 8px rgba(0,0,0,.4),0 0 0 1px rgba(255,255,255,.05)}
#page-dash .split-seg{display:flex;align-items:center;justify-content:center;
  font-family:'JetBrains Mono',monospace;font-size:11.5px;font-weight:800;color:#fff;
  text-shadow:0 1px 3px rgba(0,0,0,.5);letter-spacing:.3px;
  transition:flex 1.1s cubic-bezier(.4,0,.2,1),filter .15s}
#page-dash .split-seg:hover{filter:brightness(1.2)}
#page-dash #seg-inc{box-shadow:0 0 18px rgba(37,99,235,.35)}
#page-dash #seg-bjp{box-shadow:0 0 18px rgba(255,153,51,.3)}
/* inline stats → glass chips */
#page-dash .inline-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;border-top:none;padding:6px 20px 18px}
#page-dash .inline-stat{background:rgba(255,255,255,.03);border:1px solid var(--border);border-radius:13px;padding:13px 15px;
  transition:all .2s;border-right:1px solid var(--border)}
#page-dash .inline-stat:hover{background:rgba(110,168,254,.07);border-color:var(--border2);transform:translateY(-2px)}
#page-dash .inline-stat-num{font-family:'JetBrains Mono',monospace;font-size:22px;font-weight:800;letter-spacing:-.5px;margin-bottom:4px}
#page-dash .inline-stat-lbl{font-size:9.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--text3)}

/* ── Spotlight duo ── */
.dx-spot{position:relative;border-radius:16px;padding:16px 18px;overflow:hidden;display:flex;align-items:center;gap:14px;
  background:linear-gradient(170deg,rgba(23,33,52,.92),rgba(13,20,34,.95));
  border:1px solid var(--border);transition:all .2s;animation:dxIn .55s both}
.dx-spot:hover{transform:translateY(-2px);border-color:var(--border2)}
.dx-spot::before{content:'';position:absolute;inset:0 0 auto 0;height:2px;background:var(--sp-grad)}
.dx-spot-ico{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:26px;
  background:var(--sp-bg);box-shadow:0 0 24px var(--sp-glow),inset 0 0 0 1px var(--sp-bd);flex-shrink:0}
.dx-spot-lbl{font-size:9.5px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:var(--text3)}
.dx-spot-name{font-family:'Manrope',sans-serif;font-size:18px;font-weight:800;margin-top:3px;letter-spacing:-.3px}
.dx-spot-sub{font-size:11.5px;color:var(--text3);margin-top:2px}
.dx-spot.v-gold {--sp-grad:linear-gradient(90deg,#F59E0B,#FCD34D);--sp-bg:rgba(245,158,11,.12);--sp-glow:rgba(245,158,11,.18);--sp-bd:rgba(245,158,11,.3)}
.dx-spot.v-alert{--sp-grad:linear-gradient(90deg,#EF4444,#F97316);--sp-bg:rgba(239,68,68,.12);--sp-glow:rgba(239,68,68,.15);--sp-bd:rgba(239,68,68,.3)}

/* ── Booth progress bars (scoped restyle) ── */
#page-dash .bar-chart{padding:16px 20px}
#page-dash .bar-row{margin-bottom:13px}
#page-dash .bar-lbl{font-size:11.5px;font-weight:600;color:var(--text2)}
#page-dash .bar-track{height:9px;border-radius:99px;background:rgba(255,255,255,.05);box-shadow:inset 0 1px 3px rgba(0,0,0,.35)}
#page-dash .bar-fill{border-radius:99px;box-shadow:0 0 12px rgba(110,168,254,.25)}
#page-dash .bar-val{font-family:'JetBrains Mono',monospace;font-size:11.5px;font-weight:800}

/* ── Activity feed (scoped restyle) ── */
#page-dash .act-item{padding:11px 20px;position:relative}
#page-dash .act-dot{width:9px;height:9px;border-radius:50%;margin-top:4px;box-shadow:0 0 10px currentColor;flex-shrink:0}
#page-dash .act-text{font-size:12px;line-height:1.45}
#page-dash .act-time{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--text3);margin-top:2px}

/* ═══════════════════ DASHBOARD V3 — BILLION DOLLAR ═══════════════════ */
#page-dash{font-family:'Inter',-apple-system,sans-serif}
@keyframes dvIn{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}
@keyframes dvGlowPulse{0%,100%{opacity:.5}50%{opacity:1}}

/* ── Card primitive ── */
.dvc{position:relative;border-radius:20px;overflow:hidden;isolation:isolate;
  background:linear-gradient(180deg,rgba(255,255,255,.028),rgba(255,255,255,0) 30%),#0e1626;
  border:1px solid rgba(148,163,184,.10);
  box-shadow:0 1px 0 rgba(255,255,255,.04) inset,0 24px 48px -24px rgba(2,6,18,.8);
  animation:dvIn .55s cubic-bezier(.22,1,.36,1) both}
.dvc:hover{border-color:rgba(148,163,184,.18)}
.dv-cell-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:18px 22px 0}
.dv-lbl{font-size:11px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:#64748b}
.dv-pill{font-size:10px;font-weight:700;letter-spacing:.4px;color:#94a3b8;background:rgba(148,163,184,.08);
  border:1px solid rgba(148,163,184,.14);border-radius:99px;padding:4px 11px;white-space:nowrap}
.dv-link{font-size:11px;font-weight:700;color:#60A5FA;cursor:pointer;white-space:nowrap;transition:color .15s}
.dv-link:hover{color:#93C5FD}

/* ── Command bar ── */
.dv-bar{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:14px;padding:14px 20px;
  border-radius:20px;background:rgba(10,16,30,.6);border:1px solid rgba(148,163,184,.09);
  backdrop-filter:blur(12px);animation:dvIn .4s both}
.dv-brand{display:flex;align-items:center;gap:13px}
.dv-brand-mark{width:40px;height:40px;border-radius:13px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#1d4ed8,#3b82f6 60%,#60a5fa);font-size:19px;
  box-shadow:0 0 0 1px rgba(96,165,250,.4),0 8px 24px rgba(37,99,235,.45)}
.dv-brand-name{font-family:'Manrope',sans-serif;font-size:16px;font-weight:800;letter-spacing:3px;color:#f1f5f9;line-height:1}
.dv-brand-sub{font-size:10.5px;color:#64748b;margin-top:4px}
.dv-live{display:inline-flex;align-items:center;gap:6px;font-size:9.5px;font-weight:800;letter-spacing:1.6px;color:#4ADE80;
  background:rgba(74,222,128,.08);border:1px solid rgba(74,222,128,.22);border-radius:99px;padding:5px 11px;margin-left:6px}
.dv-clock{font-family:'JetBrains Mono',monospace;font-size:15px;font-weight:700;color:#cbd5e1;letter-spacing:.5px;
  background:rgba(148,163,184,.06);border:1px solid rgba(148,163,184,.12);border-radius:11px;padding:8px 14px;white-space:nowrap}
.dv-bar-right{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dv-seg{display:inline-flex;gap:2px;padding:4px;border-radius:12px;background:rgba(2,6,16,.55);border:1px solid rgba(148,163,184,.1)}
.dv-seg .btn{border:none!important;background:transparent!important;color:#94a3b8!important;
  font-size:11px;font-weight:700;padding:7px 13px!important;border-radius:9px!important;box-shadow:none!important}
.dv-seg .btn:hover{color:#fff!important;background:rgba(148,163,184,.1)!important;transform:none!important}
.dv-seg .btn.btn-primary{background:linear-gradient(135deg,#2563eb,#3b82f6)!important;color:#fff!important;
  box-shadow:0 2px 14px rgba(59,130,246,.45)!important}
.dv-actions{display:flex;gap:7px}
.dv-actions .btn-ghost{background:rgba(148,163,184,.06)!important;border:1px solid rgba(148,163,184,.14)!important;color:#cbd5e1!important}
.dv-actions .btn-ghost:hover{background:rgba(148,163,184,.14)!important;color:#fff!important}
.dv-actions .btn-primary{background:linear-gradient(135deg,#2563eb,#60a5fa)!important;border:none!important;font-weight:800;
  box-shadow:0 4px 18px rgba(59,130,246,.4)!important}

/* ── Pulse row ── */
.dv-pulse{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:14px}
@media (max-width:1180px){.dv-pulse{grid-template-columns:1fr}}
.dv-pulse .dvc:nth-child(2){animation-delay:.07s}.dv-pulse .dvc:nth-child(3){animation-delay:.14s}
/* win cell */
.dv-win::after{content:'';position:absolute;top:-60px;left:-40px;width:240px;height:240px;border-radius:50%;z-index:-1;
  background:radial-gradient(circle,rgba(59,130,246,.16),transparent 65%)}
.dv-win-body{display:flex;align-items:center;gap:8px;padding:2px 22px 16px}
.dv-gauge{flex:1;min-width:150px;margin:-8px 0 -14px -10px}
.dv-win-side{display:flex;flex-direction:column;gap:8px;min-width:128px}
.dv-mini{display:flex;align-items:center;gap:8px;font-size:12px;color:#94a3b8;
  background:rgba(148,163,184,.05);border:1px solid rgba(148,163,184,.1);border-radius:11px;padding:8px 12px}
.dv-mini b{font-family:'JetBrains Mono',monospace;font-size:13px;color:#f1f5f9;margin-left:auto}
.dv-mini .dot{width:8px;height:8px;border-radius:3px;flex-shrink:0}
.dv-mini .dot.inc{background:#3B82F6;box-shadow:0 0 8px rgba(59,130,246,.7)}
.dv-mini .dot.bjp{background:#FF9933;box-shadow:0 0 8px rgba(255,153,51,.6)}
/* coverage cell */
.dv-cov::after{content:'';position:absolute;top:-60px;right:-40px;width:240px;height:240px;border-radius:50%;z-index:-1;
  background:radial-gradient(circle,rgba(52,211,153,.13),transparent 65%)}
.dv-big{font-family:'JetBrains Mono',monospace;font-weight:800;font-size:54px;line-height:1;letter-spacing:-2.5px;color:#f8fafc}
.dv-big small{font-size:26px;color:#475569;font-weight:700;letter-spacing:-1px}
.dv-cov-body{padding:14px 22px 20px}
.dv-cov-sub{font-size:12px;color:#64748b;margin-top:9px}
.dv-cov-sub b{color:#cbd5e1;font-family:'JetBrains Mono',monospace}
.dv-track{height:7px;border-radius:99px;background:rgba(148,163,184,.09);overflow:hidden;margin-top:15px}
.dv-track>div{height:100%;border-radius:99px;width:0;transition:width 1.4s cubic-bezier(.22,1,.36,1);
  background:linear-gradient(90deg,#10B981,#34D399);box-shadow:0 0 14px rgba(52,211,153,.5)}
.dv-funnel{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}
.dv-funnel span{font-size:10.5px;font-weight:600;color:#94a3b8;background:rgba(148,163,184,.06);
  border:1px solid rgba(148,163,184,.11);border-radius:99px;padding:5px 11px;display:inline-flex;align-items:center;gap:6px}
.dv-funnel b{color:#e2e8f0;font-family:'JetBrains Mono',monospace}
/* ── 5S conversion funnel ── */
.f5-wrap{background:linear-gradient(180deg,rgba(255,255,255,.02),transparent),#0e1626;border:1px solid var(--border);
  border-radius:16px;padding:16px 18px;margin-bottom:16px;box-shadow:0 4px 18px rgba(0,0,0,.18)}
.f5-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.f5-title{font-size:14px;font-weight:800;color:#f1f5f9;letter-spacing:.2px}
.f5-legend{font-size:10.5px;font-weight:600;color:#64748b}
.f5-bar{display:flex;height:14px;border-radius:99px;overflow:hidden;background:rgba(148,163,184,.08);margin-bottom:14px}
.f5-bar i{display:block;height:100%;transition:width .5s ease}
.f5-cards{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
@media (max-width:760px){.f5-cards{grid-template-columns:repeat(2,1fr)}}
.f5-card{border-radius:12px;padding:11px 12px;cursor:pointer;border:1px solid;transition:transform .1s}
.f5-card:hover{transform:translateY(-2px)}
.f5-card .n{font-size:22px;font-weight:800;line-height:1;font-family:'JetBrains Mono',monospace}
.f5-card .l{font-size:11px;font-weight:800;margin-top:5px}
.f5-card .hi{font-size:10px;color:#94a3b8;margin-top:1px}
.f5-card .pct{font-size:10px;font-weight:700;margin-top:4px;opacity:.85}
/* tug-of-war bar (support lead) */
.dv-tug{display:flex;height:12px;border-radius:99px;overflow:hidden;margin-top:15px;
  background:rgba(148,163,184,.07);box-shadow:inset 0 1px 4px rgba(0,0,0,.35)}
.dv-tug-inc{background:linear-gradient(90deg,#1d4ed8,#3B82F6);box-shadow:0 0 14px rgba(59,130,246,.5);
  transition:width 1.3s cubic-bezier(.22,1,.36,1);width:0}
.dv-tug-bjp{background:linear-gradient(90deg,#FF9933,#D97706);box-shadow:0 0 14px rgba(255,153,51,.4);
  transition:width 1.3s cubic-bezier(.22,1,.36,1);width:0;margin-left:auto}
.dot-sm{width:7px;height:7px;border-radius:2px;flex-shrink:0}
.dot-sm.inc{background:#3B82F6}.dot-sm.bjp{background:#FF9933}
/* momentum cell */
.dv-mom::after{content:'';position:absolute;bottom:-70px;right:-30px;width:240px;height:240px;border-radius:50%;z-index:-1;
  background:radial-gradient(circle,rgba(167,139,250,.13),transparent 65%)}
.dv-mom-body{padding:14px 22px 18px}
.dv-mom-row{display:flex;align-items:flex-end;gap:14px}
.dv-badge{display:inline-flex;align-items:center;gap:4px;font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:800;border-radius:9px;padding:5px 10px;margin-bottom:7px}
.dv-badge.up{color:#4ADE80;background:rgba(74,222,128,.1);border:1px solid rgba(74,222,128,.25)}
.dv-badge.dn{color:#F87171;background:rgba(248,113,113,.1);border:1px solid rgba(248,113,113,.25)}
.dv-mom-cmp{margin-top:16px;display:grid;gap:8px}
.dv-cmp-row{display:grid;grid-template-columns:64px 1fr 52px;align-items:center;gap:10px;font-size:10.5px;color:#64748b}
.dv-cmp-row b{font-family:'JetBrains Mono',monospace;font-size:11.5px;color:#cbd5e1;text-align:right}
.dv-cmp-bar{height:8px;border-radius:99px;background:rgba(148,163,184,.08);overflow:hidden}
.dv-cmp-bar>div{height:100%;border-radius:99px;width:0;transition:width 1.2s cubic-bezier(.22,1,.36,1)}
.dv-cmp-bar.curr>div{background:linear-gradient(90deg,#8B5CF6,#A78BFA);box-shadow:0 0 12px rgba(167,139,250,.45)}
.dv-cmp-bar.prev>div{background:rgba(148,163,184,.3)}
.dv-tp{display:flex;align-items:center;gap:11px;margin-top:16px;padding-top:14px;border-top:1px solid rgba(148,163,184,.09)}
.dv-tp-ico{width:36px;height:36px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:16px;
  background:rgba(251,191,36,.1);box-shadow:inset 0 0 0 1px rgba(251,191,36,.28)}
.dv-tp-lbl{font-size:9px;font-weight:800;letter-spacing:1.4px;color:#64748b;text-transform:uppercase}
.dv-tp-name{font-size:13.5px;font-weight:700;color:#f1f5f9;margin-top:1px}
.dv-tp-sub{font-size:10.5px;color:#64748b;margin-top:1px}

/* ── Stat strip ── */
.dv-strip{display:grid;grid-template-columns:repeat(10,1fr);margin-bottom:14px;animation-delay:.1s}
@media (max-width:1480px){.dv-strip{grid-template-columns:repeat(5,1fr)}}
@media (max-width:900px){.dv-strip{grid-template-columns:repeat(3,1fr)}}
.dv-stat{position:relative;padding:17px 18px 15px;cursor:pointer;transition:background .15s}
.dv-stat:not(:last-child)::after{content:'';position:absolute;right:0;top:22%;bottom:22%;width:1px;background:rgba(148,163,184,.1)}
.dv-stat:hover{background:rgba(148,163,184,.045)}
.dv-stat-lbl{font-size:9.5px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:#64748b;margin-bottom:9px;white-space:nowrap}
.dv-stat-num{font-family:'JetBrains Mono',monospace;font-size:24px;font-weight:800;letter-spacing:-1px;color:#f8fafc;line-height:1}
.dv-stat-sub{font-size:10px;color:#64748b;margin-top:7px;white-space:nowrap}
.dv-stat-sub .up{color:#4ADE80;font-weight:700}.dv-stat-sub .dn{color:#F87171;font-weight:700}
.dv-stat-bar{height:3px;border-radius:99px;background:rgba(148,163,184,.08);overflow:hidden;margin-top:9px}
.dv-stat-bar>div{height:100%;border-radius:99px;transition:width 1.2s cubic-bezier(.22,1,.36,1)}
.dv-stat.t-violet .dv-stat-num{color:#C4B5FD}.dv-stat.t-violet .dv-stat-bar>div{background:#8B5CF6}
.dv-stat.t-teal .dv-stat-num{color:#5EEAD4}.dv-stat.t-teal .dv-stat-bar>div{background:#14B8A6}
.dv-stat.t-blue .dv-stat-num{color:#93C5FD}.dv-stat.t-blue .dv-stat-bar>div{background:#3B82F6}
.dv-stat.t-red .dv-stat-num{color:#FCA5A5}.dv-stat.t-red .dv-stat-bar>div{background:#EF4444}
.dv-stat.t-cyan .dv-stat-num{color:#67E8F9}.dv-stat.t-cyan .dv-stat-bar>div{background:#06B6D4}
.dv-stat.t-green .dv-stat-num{color:#86EFAC}.dv-stat.t-green .dv-stat-bar>div{background:#22C55E}
.dv-stat.t-amber .dv-stat-num{color:#FCD34D}.dv-stat.t-amber .dv-stat-bar>div{background:#F59E0B}
.dv-stat.t-pink .dv-stat-num{color:#F9A8D4}.dv-stat.t-pink .dv-stat-bar>div{background:#EC4899}
.dv-stat.t-indigo .dv-stat-num{color:#A5B4FC}.dv-stat.t-indigo .dv-stat-bar>div{background:#6366F1}
.dv-stat.t-slate .dv-stat-num{color:#CBD5E1}.dv-stat.t-slate .dv-stat-bar>div{background:#64748B}

/* ── Alert ribbon ── */
.dv-alert{display:flex;align-items:center;gap:13px;margin-bottom:14px;padding:13px 20px;border-radius:16px;
  background:linear-gradient(90deg,rgba(239,68,68,.1),rgba(239,68,68,.02) 60%);
  border:1px solid rgba(239,68,68,.22);animation:dvIn .55s .15s both}
.dv-alert-ic{width:30px;height:30px;border-radius:10px;display:flex;align-items:center;justify-content:center;
  font-weight:900;font-size:15px;color:#FCA5A5;background:rgba(239,68,68,.14);
  box-shadow:inset 0 0 0 1px rgba(239,68,68,.3);animation:dvGlowPulse 2s infinite}
.dv-alert-lbl{font-size:9.5px;font-weight:800;letter-spacing:1.6px;color:#F87171;white-space:nowrap}
.dv-alert b{font-size:13.5px;font-weight:800;color:#fecaca}
.dv-alert-sub{font-size:11.5px;color:#94a3b8}
.dv-alert .btn{margin-left:auto}

/* ── Battle bar card ── */
.dv-battle{margin-bottom:14px;animation-delay:.18s}
.dv-battle-body{padding:14px 22px 20px}
#page-dash .dv-battle .split-bar{height:38px;border-radius:13px}
.dv-legend{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:13px}
.dv-legend span{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:600;color:#94a3b8;
  background:rgba(148,163,184,.05);border:1px solid rgba(148,163,184,.11);border-radius:99px;padding:6px 13px}
.dv-legend strong{font-family:'JetBrains Mono',monospace;font-size:11.5px;color:#f1f5f9}
.dv-legend .sw{width:9px;height:9px;border-radius:3px}

/* ── Bento row (booths / demographics / activity) ── */
.dv-bento{display:grid;grid-template-columns:5fr 4fr 3fr;gap:14px;margin-bottom:14px}
@media (max-width:1280px){.dv-bento{grid-template-columns:1fr 1fr}}
@media (max-width:900px){.dv-bento{grid-template-columns:1fr}}
.dv-bento .dvc:nth-child(2){animation-delay:.08s}.dv-bento .dvc:nth-child(3){animation-delay:.16s}
.dv-demo-body{padding:6px 14px 12px}
.dv-gender{display:flex;height:10px;border-radius:99px;overflow:hidden;margin:4px 20px 6px}
.dv-gender>div{transition:width 1.2s ease}
.dv-gender-leg{display:flex;gap:14px;padding:0 22px 16px;font-size:10.5px;color:#64748b}
.dv-gender-leg b{color:#cbd5e1;font-family:'JetBrains Mono',monospace}

/* two-col action row — align legacy panels with the new system */
#page-dash .panel{border-radius:20px;
  background:linear-gradient(180deg,rgba(255,255,255,.028),rgba(255,255,255,0) 30%),#0e1626;
  border:1px solid rgba(148,163,184,.10);
  box-shadow:0 1px 0 rgba(255,255,255,.04) inset,0 24px 48px -24px rgba(2,6,18,.8)}
#page-dash .panel-title{font-size:11px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:#64748b}
#page-dash .dash-intel-title{font-size:11px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:#64748b}
#page-dash .two-col{gap:14px}
#page-dash .bar-chart{padding:14px 22px 18px}
#page-dash .bar-lbl{font-size:11.5px;font-weight:600;color:#94a3b8}
#page-dash .bar-track{height:8px;border-radius:99px;background:rgba(148,163,184,.07)}
#page-dash .bar-fill{border-radius:99px}
#page-dash .bar-val{font-family:'JetBrains Mono',monospace;font-size:11.5px;font-weight:800}
#page-dash .act-item{padding:10px 22px}
#page-dash .act-text{font-size:11.5px;line-height:1.5;color:#94a3b8}
#page-dash .act-text strong{color:#e2e8f0}
#page-dash .act-time{font-family:'JetBrains Mono',monospace;font-size:9.5px;color:#475569}
#page-dash .dash-booth-search-bar{background:rgba(148,163,184,.06);border-color:rgba(148,163,184,.12);border-radius:10px}

/* ── Intelligence modules — align with DV system ── */
#page-dash .dash-intel-wrap{margin-top:14px}
#page-dash .dash-intel-header{margin-bottom:14px}
#page-dash .dash-intel-line{background:rgba(148,163,184,.12)}
#page-dash .dash-mod-row{gap:14px}
#page-dash .dash-mod-card{border-radius:20px;
  background:linear-gradient(180deg,rgba(255,255,255,.028),rgba(255,255,255,0) 30%),#0e1626;
  border:1px solid rgba(148,163,184,.10);
  box-shadow:0 1px 0 rgba(255,255,255,.04) inset,0 24px 48px -24px rgba(2,6,18,.8)}
#page-dash .dash-mod-card::before{display:none}            /* kill rainbow top stripes */
#page-dash .dash-mod-card::after{display:none}             /* kill corner glow blobs   */
#page-dash .dash-mod-card:hover{transform:translateY(-3px);border-color:rgba(148,163,184,.22);
  box-shadow:0 1px 0 rgba(255,255,255,.05) inset,0 28px 56px -24px rgba(2,6,18,.9)}
#page-dash .dm-head{padding:18px 22px 13px;border-bottom:1px solid rgba(148,163,184,.08)}
#page-dash .dm-head-badge{width:30px;height:30px;border-radius:9px;font-size:14px;
  background:rgba(148,163,184,.07)!important;box-shadow:inset 0 0 0 1px rgba(148,163,184,.13)}
#page-dash .dm-head-title{font-size:11px;font-weight:700;letter-spacing:1.6px;color:#64748b!important}
#page-dash .dm-head-link{font-size:11px;font-weight:700;color:#60A5FA;border:none;padding:0;background:none}
#page-dash .dash-mod-card:hover .dm-head-link{color:#93C5FD;border:none}
#page-dash .dm-body{padding:16px 22px 18px}
#page-dash .dm-rank{font-size:13px;min-width:18px;filter:saturate(.7)}
#page-dash .dm-name{font-size:12.5px;font-weight:600;color:#cbd5e1!important}
#page-dash .dm-val{font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:700;color:#e2e8f0}
#page-dash .dm-mini-bar{height:4px;background:rgba(148,163,184,.08)}
#page-dash .dm-stat{border-top:1px solid rgba(148,163,184,.08);padding-top:13px}
#page-dash .dm-stat-num{font-family:'JetBrains Mono',monospace;font-size:26px;font-weight:800;letter-spacing:-1px;
  color:#f8fafc!important;text-shadow:none!important}
#page-dash .dm-stat-lbl{font-size:10.5px;color:#64748b}
#page-dash .dm-empty{font-style:normal;font-size:11.5px;color:#475569}

/* ═══ DEEP INTEL — dossier cards ═══ */
.im-wrap{margin-top:20px}
.im-head{display:flex;align-items:flex-end;gap:18px;margin-bottom:16px}
.im-kicker{font-size:9.5px;font-weight:800;letter-spacing:2.6px;text-transform:uppercase;
  background:linear-gradient(90deg,#60A5FA,#A78BFA);-webkit-background-clip:text;background-clip:text;color:transparent}
.im-title{font-family:'Manrope',sans-serif;font-size:21px;font-weight:800;color:#f1f5f9;letter-spacing:-.5px;margin-top:3px}
.im-line{flex:1;height:1px;background:linear-gradient(90deg,rgba(148,163,184,.18),transparent);margin-bottom:9px}
.im-head .dv-pill{margin-bottom:6px}
.im-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media (max-width:1180px){.im-grid{grid-template-columns:1fr}}
.im-card{position:relative;border-radius:22px;cursor:pointer;overflow:hidden;isolation:isolate;
  display:flex;flex-direction:column;
  background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,0) 35%),#0d1524;
  border:1px solid rgba(148,163,184,.10);
  transition:transform .3s cubic-bezier(.22,1,.36,1),border-color .3s,box-shadow .3s;
  animation:dvIn .6s both}
.im-grid .im-card:nth-child(2){animation-delay:.08s}
.im-grid .im-card:nth-child(3){animation-delay:.16s}
.im-card:hover{transform:translateY(-6px);border-color:var(--im-bd);
  box-shadow:0 34px 64px -20px rgba(2,6,18,.9),0 0 44px -10px var(--im-glow)}
/* ghost index numeral */
.im-index{position:absolute;top:-18px;right:8px;z-index:0;pointer-events:none;
  font-family:'Manrope',sans-serif;font-size:104px;font-weight:800;letter-spacing:-7px;line-height:1;
  color:transparent;-webkit-text-stroke:1px rgba(148,163,184,.10);transition:all .35s}
.im-card:hover .im-index{-webkit-text-stroke-color:var(--im-stroke);transform:translateY(-4px)}
/* left edge glow accent */
.im-card::before{content:'';position:absolute;left:0;top:26px;bottom:26px;width:3px;
  border-radius:0 4px 4px 0;background:var(--im-grad);box-shadow:0 0 20px var(--im-glow);opacity:.85;z-index:1}
.im-card-head{display:flex;align-items:center;gap:13px;padding:22px 22px 12px;position:relative;z-index:1}
.im-ico{width:44px;height:44px;border-radius:14px;font-size:20px;display:flex;align-items:center;justify-content:center;
  background:var(--im-icobg);box-shadow:inset 0 0 0 1px var(--im-bd),0 0 24px -6px var(--im-glow)}
.im-eyebrow{font-size:9px;font-weight:800;letter-spacing:2.2px;text-transform:uppercase;color:var(--im-accent)}
.im-name{font-family:'Manrope',sans-serif;font-size:16.5px;font-weight:800;color:#f8fafc;letter-spacing:-.3px;margin-top:2px}
.im-card .dm-body{padding:6px 22px 16px;flex:1;position:relative;z-index:1;display:flex;flex-direction:column;gap:10px}
.im-card.dm-gallery .dm-body{flex-direction:column}
.im-card.dm-gallery .dm-body > *{min-width:0}
/* footer CTA strip */
.im-cta{display:flex;align-items:center;justify-content:space-between;padding:13px 22px;margin-top:auto;
  border-top:1px solid rgba(148,163,184,.08);position:relative;z-index:1;
  font-size:10px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:#64748b;transition:all .25s}
.im-cta .ar{font-size:14px;color:var(--im-accent);transition:transform .25s}
.im-card:hover .im-cta{color:var(--im-accent);background:var(--im-ctabg)}
.im-card:hover .im-cta .ar{transform:translateX(6px)}
/* per-module accents */
.im-card.dm-perf{--im-accent:#FBBF24;--im-grad:linear-gradient(180deg,#F59E0B,#FBBF24);--im-glow:rgba(245,158,11,.3);
  --im-bd:rgba(245,158,11,.28);--im-icobg:rgba(245,158,11,.1);--im-stroke:rgba(251,191,36,.25);--im-ctabg:rgba(245,158,11,.05)}
.im-card.dm-booth{--im-accent:#A78BFA;--im-grad:linear-gradient(180deg,#7C3AED,#A78BFA);--im-glow:rgba(139,92,246,.3);
  --im-bd:rgba(167,139,250,.28);--im-icobg:rgba(124,58,237,.12);--im-stroke:rgba(167,139,250,.25);--im-ctabg:rgba(124,58,237,.06)}
.im-card.dm-gallery{--im-accent:#F472B6;--im-grad:linear-gradient(180deg,#DB2777,#F472B6);--im-glow:rgba(236,72,153,.3);
  --im-bd:rgba(244,114,182,.28);--im-icobg:rgba(219,39,119,.1);--im-stroke:rgba(244,114,182,.25);--im-ctabg:rgba(219,39,119,.05)}
/* neutralize old full-width gallery rule inside the new grid */
.im-grid .dm-gallery{grid-column:auto}
/* ── ANALYTICS V2 — Command Bar ─────────────────────────────────── */
/* Main bar */
.av2-cmd-bar{display:flex;align-items:center;gap:0;margin-bottom:16px;background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:visible;position:relative;z-index:400;min-height:50px}
/* Booth selector wrapper */
.av2-bs-wrap{position:relative;flex:1;min-width:0}
.av2-bs-trigger{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;border-radius:12px 0 0 12px;transition:background .15s;user-select:none;min-height:50px}
.av2-bs-trigger:hover{background:rgba(255,255,255,.04)}
.av2-bs-icon{font-size:16px;flex-shrink:0}
.av2-bs-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.av2-bs-lbl{font-size:10px;font-weight:700;color:var(--text3);letter-spacing:1px;text-transform:uppercase;line-height:1}
.av2-bs-val{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}
.av2-bs-chip{display:inline-flex;align-items:center;gap:4px;background:rgba(110,168,254,.15);border:1px solid rgba(110,168,254,.3);color:#6EA8FE;border-radius:20px;font-size:11px;font-weight:700;padding:2px 9px;font-family:'JetBrains Mono',monospace;flex-shrink:0}
.av2-bs-caret{font-size:10px;color:var(--text3);transition:transform .22s;margin-left:6px;flex-shrink:0}
.av2-bs-caret.open{transform:rotate(180deg)}
/* Reset chip */
.av2-reset-chip{display:flex;align-items:center;gap:5px;padding:5px 12px;margin:0 10px 0 0;background:rgba(248,113,113,.1);border:1px solid rgba(248,113,113,.28);border-radius:20px;color:#F87171;font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap;transition:all .15s;flex-shrink:0}
.av2-reset-chip:hover{background:rgba(248,113,113,.22);transform:scale(1.03)}
/* Search panel (dropdown) */
.av2-bs-panel{position:absolute;top:calc(100% + 8px);left:0;min-width:340px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.55),0 4px 16px rgba(0,0,0,.3);z-index:300;overflow:hidden;animation:av2PanelIn .15s ease}
@keyframes av2PanelIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.av2-bs-search-row{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border);background:var(--surface2)}
.av2-bs-search-icon{color:var(--text3);font-size:14px;flex-shrink:0}
.av2-bs-search{flex:1;background:transparent;border:none;outline:none;font-size:13px;color:var(--text);font-family:inherit}
.av2-bs-search::placeholder{color:var(--text3)}
.av2-bs-x{background:none;border:none;color:var(--text3);cursor:pointer;font-size:14px;padding:2px 5px;border-radius:5px;line-height:1;transition:all .12s}
.av2-bs-x:hover{color:var(--text);background:var(--surface3)}
.av2-bs-list{max-height:280px;overflow-y:auto;padding:6px}
.av2-bs-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-radius:8px;cursor:pointer;font-size:12px;gap:8px;transition:background .1s}
.av2-bs-item:hover{background:var(--surface2)}
.av2-bs-item.active{background:linear-gradient(90deg,rgba(10,61,145,.35),rgba(10,61,145,.12));border-left:2px solid #6EA8FE;padding-left:10px}
.av2-bi-name{flex:1;color:var(--text);font-weight:500}
.av2-bi-num{color:var(--text3);font-family:'JetBrains Mono',monospace;font-size:11px;flex-shrink:0}
.av2-bs-item.av2-all-item{border-bottom:1px solid var(--border);margin-bottom:4px;padding-bottom:10px}
.av2-bs-item.av2-all-item .av2-bi-name{font-weight:700;color:var(--text)}
.av2-bs-empty{padding:20px;text-align:center;color:var(--text3);font-size:12px}
/* Dashboard booth search bar */
.dash-booth-search-bar{display:flex;align-items:center;gap:6px;padding:6px 11px;background:var(--surface2);border-radius:8px;border:1px solid var(--border);transition:border-color .15s}
.dash-booth-search-bar:focus-within{border-color:var(--border2)}
.dash-booth-search-bar span{color:var(--text3);font-size:12px;flex-shrink:0}
.dash-booth-search-bar input{background:transparent;border:none;outline:none;font-size:12px;color:var(--text);width:130px;font-family:inherit}
.dash-booth-search-bar input::placeholder{color:var(--text3)}

/* KPI row (4 cards, bigger than dashboard KPI) */
.av2-kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}
.av2-kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;position:relative;overflow:hidden}
.av2-kpi.alert{background:linear-gradient(180deg,rgba(248,113,113,0.06),var(--surface) 60%);border-color:rgba(248,113,113,0.2)}
.av2-kpi .klbl{font-size:10px;font-weight:700;letter-spacing:0.8px;text-transform:uppercase;margin-bottom:10px;display:flex;align-items:center;gap:6px}
.av2-kpi .kval{font-size:30px;font-weight:800;line-height:1;color:var(--text);letter-spacing:-0.5px;margin-bottom:6px}
.av2-kpi .ksub{font-size:11px;color:var(--text3);margin-top:4px}
.av2-mini-bar{display:flex;height:4px;border-radius:3px;overflow:hidden;margin-top:10px;background:var(--surface3)}
.av2-mini-bar > span{height:100%;display:block;transition:width .6s ease}
.av2-delta-up{color:#4ADE80;font-weight:700}

/* Panels split */
.av2-split2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
.av2-accent{display:inline-block;width:3px;height:14px;border-radius:2px;margin-right:8px;vertical-align:middle}

/* Group rows (caste & religion) */
.av2-rows{padding:8px}
.av2-row{border-radius:8px;margin-bottom:4px;cursor:pointer;transition:background .12s}
.av2-row:hover{background:var(--surface2)}
.av2-row-head{display:flex;align-items:center;gap:10px;padding:12px 14px}
.av2-caret{width:22px;height:22px;border-radius:5px;background:var(--surface2);display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--text2);transition:transform .15s;flex-shrink:0}
.av2-row.open .av2-caret{transform:rotate(90deg);background:var(--surface3);color:var(--text)}
.av2-row-main{flex:1;min-width:0}
.av2-row-title{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}
.av2-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.av2-name{font-size:14px;font-weight:700;color:var(--text)}
.av2-hi{font-size:12px;color:var(--text2)}
.av2-meta{margin-left:auto;font-size:11px;color:var(--text3);font-family:'JetBrains Mono',monospace}
.av2-bar-wrap{height:6px;background:var(--surface3);border-radius:3px;overflow:hidden}
.av2-bar-wrap > span{height:100%;display:block;border-radius:3px;transition:width .6s ease}
.av2-row-stat{text-align:right;flex-shrink:0;min-width:88px}
.av2-total{font-size:20px;font-weight:800;line-height:1}
.av2-pct{font-size:10px;color:var(--text3);margin-top:3px}

/* Row expansion */
.av2-expand{padding:0 14px 14px 46px;display:none}
.av2-row.open .av2-expand{display:block}
.av2-exp-label{font-size:10px;font-weight:700;letter-spacing:1.2px;color:var(--text3);text-transform:uppercase;margin:10px 0 8px}
.av2-mf-group{display:flex;flex-direction:column;gap:7px;margin-top:4px}
.av2-mf-row{display:grid;grid-template-columns:60px 1fr 40px;gap:10px;align-items:center;font-size:12px}
.av2-mf-row .lbl{color:var(--text2)}
.av2-mf-row .val{color:var(--text);font-weight:700;text-align:right;font-family:'JetBrains Mono',monospace}
.av2-mf-track{height:6px;background:var(--surface3);border-radius:3px;overflow:hidden}
.av2-mf-track > span{height:100%;display:block;border-radius:3px;transition:width .5s ease}
.av2-chips{display:flex;flex-wrap:wrap;gap:6px}
.av2-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:var(--surface2);border:1px solid var(--border);border-radius:16px;font-size:11px;color:var(--text)}
.av2-chip .n{color:var(--text3);font-family:'JetBrains Mono',monospace}
.av2-exp-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:6px}
.av2-age-mini{display:flex;flex-direction:column;gap:6px;margin-top:4px}
.av2-age-mini-row{display:grid;grid-template-columns:50px 1fr 40px;gap:10px;align-items:center;font-size:11px}
.av2-age-mini-row .lbl{color:var(--text2)}
.av2-age-mini-row .val{color:var(--text);font-weight:700;text-align:right;font-family:'JetBrains Mono',monospace}
.av2-age-mini-track{height:5px;background:var(--surface3);border-radius:3px;overflow:hidden}
.av2-age-mini-track > span{height:100%;display:block;border-radius:3px;transition:width .5s ease}

/* Age Group (main panel) */
.av2-age-rows{padding:14px 20px 20px;display:flex;flex-direction:column;gap:14px}
.av2-age-row{display:grid;grid-template-columns:120px 1fr 90px;gap:14px;align-items:center}
.av2-age-lbl{line-height:1.25}
.av2-age-range{font-size:13px;font-weight:700;color:var(--text)}
.av2-age-sub{font-size:10px;color:var(--text3);margin-top:2px}
.av2-age-track{height:10px;background:var(--surface3);border-radius:5px;overflow:hidden}
.av2-age-track > span{height:100%;display:block;border-radius:5px;transition:width .7s ease}
.av2-age-val{text-align:right;font-family:'JetBrains Mono',monospace}
.av2-age-val .n{font-size:18px;font-weight:800;color:var(--text)}
.av2-age-val .p{font-size:10px;color:var(--text3);margin-left:3px}

/* Female voter profile */
.av2-fm{padding:14px 20px 20px}
.av2-fm-top{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}
.av2-fm-card{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:12px 14px}
.av2-fm-card.pink{border-color:rgba(244,114,182,0.3)}
.av2-fm-card.blue{border-color:rgba(110,168,254,0.3)}
.av2-fm-card .t{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:700;color:var(--text)}
.av2-fm-card .hi{font-size:10px;color:var(--text3)}
.av2-fm-card .v{font-size:26px;font-weight:800;line-height:1;margin:8px 0 4px}
.av2-fm-card.pink .v{color:#F472B6}
.av2-fm-card.blue .v{color:#6EA8FE}
.av2-fm-card .s{font-size:10px;color:var(--text3)}
.av2-fm-section{font-size:10px;font-weight:700;letter-spacing:1.2px;color:var(--text3);text-transform:uppercase;margin:14px 0 8px}
.av2-fm-pills{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.av2-fm-pill{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:9px 11px}
.av2-fm-pill .r{font-size:10px;color:var(--text3);margin-bottom:4px}
.av2-fm-pill .n{font-size:17px;font-weight:800;line-height:1}
.av2-fm-pill.pink .n{color:#F472B6}
.av2-fm-pill.blue .n{color:#6EA8FE}
.av2-fm-pill-bar{height:3px;background:var(--surface3);border-radius:2px;overflow:hidden;margin-top:6px}
.av2-fm-pill-bar > span{height:100%;display:block;border-radius:2px;transition:width .6s ease}

/* ── PHOTO GALLERY ── */
.gallery-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;cursor:pointer;transition:transform .18s,box-shadow .18s}
.gallery-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,0.3)}
.gallery-img{width:100%;aspect-ratio:1;object-fit:cover;display:block;background:var(--surface2)}
.gallery-info{padding:10px 12px}
.gallery-voter{font-size:13px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gallery-meta{font-size:11px;color:var(--text3);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gallery-agent{font-size:10px;color:var(--blue-mid);margin-top:4px;font-weight:600}
/* Lightbox */
#galleryLightbox{position:fixed;inset:0;background:rgba(0,0,0,0.9);z-index:1100;display:none;align-items:center;justify-content:center;flex-direction:column;gap:16px;padding:20px}
#galleryLightbox.open{display:flex}
#lightboxImg{max-height:70vh;max-width:90vw;border-radius:10px;box-shadow:0 0 40px rgba(0,0,0,0.8)}
#lightboxInfo{color:#fff;text-align:center;max-width:400px}
#lightboxClose{position:fixed;top:20px;right:24px;font-size:28px;cursor:pointer;color:#fff;line-height:1}

/* ── MODAL ── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.7);backdrop-filter:blur(5px);z-index:1000;display:none;align-items:center;justify-content:center;padding:20px}
.modal-overlay.open{display:flex;animation:fadeIn .2s ease}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.modal{background:var(--surface);border:1px solid var(--border2);border-radius:18px;padding:26px;width:100%;max-width:460px;box-shadow:0 30px 80px rgba(0,0,0,0.6);animation:slideUp .25s ease}
@keyframes slideUp{from{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}
.modal-title{font-size:17px;font-weight:700;margin-bottom:4px}
.modal-sub{font-size:12px;color:var(--text3);margin-bottom:20px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-group{margin-bottom:14px}
.form-lbl{display:block;font-size:10px;font-weight:700;color:var(--text3);letter-spacing:0.5px;text-transform:uppercase;margin-bottom:6px}
.form-inp{width:100%;padding:10px 13px;background:var(--surface2);border:1px solid var(--border2);border-radius:var(--radius-sm);color:var(--text);font-size:13px;font-family:inherit;outline:none;transition:all .2s}
.form-inp:focus{border-color:var(--blue-mid);box-shadow:0 0 0 3px rgba(10,61,145,0.2)}
.modal-footer{display:flex;gap:8px;justify-content:flex-end;margin-top:20px}

/* ── TIMELINE ── */
.timeline{padding:16px 18px;display:flex;flex-direction:column;gap:0}
.tl-item{display:flex;gap:12px}
.tl-left{display:flex;flex-direction:column;align-items:center}
.tl-dot{width:9px;height:9px;border-radius:50%;margin-top:3px;flex-shrink:0}
.tl-line{width:1px;flex:1;background:var(--border);margin:3px 0;min-height:20px}
.tl-item:last-child .tl-line{display:none}
.tl-content{padding-bottom:16px}
.tl-title{font-size:12px;color:var(--text)}
.tl-time{font-size:10px;color:var(--text3);margin-top:2px}

/* ── TOAST ── */
.toast-box{position:fixed;bottom:20px;right:20px;z-index:1200;display:flex;flex-direction:column;gap:6px}
.toast{background:var(--surface);border:1px solid var(--border2);border-radius:10px;padding:12px 16px;font-size:12px;color:var(--text);box-shadow:0 6px 24px rgba(0,0,0,0.4);display:flex;align-items:center;gap:8px;animation:toastIn .3s ease;max-width:300px}
@keyframes toastIn{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:translateX(0)}}

/* ── LOGIN ── */
#loginScreen{position:fixed;inset:0;background:linear-gradient(160deg,#0b1320,#162234);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:300;padding:20px}
#loginScreen.hidden{display:none}
.login-box{background:var(--surface);border:1px solid var(--border2);border-radius:20px;padding:36px 32px;width:100%;max-width:400px;box-shadow:0 30px 80px rgba(0,0,0,0.5)}
.login-logo{display:flex;align-items:center;justify-content:center;margin:6px 0 20px;padding:14px 12px;background:linear-gradient(180deg,rgba(255,255,255,0.04),rgba(255,255,255,0));border-radius:14px}
.login-logo-img{max-width:230px;width:80%;height:auto;max-height:60px;display:block;object-fit:contain;filter:drop-shadow(0 4px 18px rgba(255,200,60,0.18))}
.login-divider{height:1px;background:linear-gradient(90deg,transparent,var(--border2),transparent);margin:0 0 18px}
.login-h{font-size:18px;font-weight:700;margin-bottom:4px;text-align:center;letter-spacing:0.2px}
.login-p{font-size:12px;color:var(--text3);margin-bottom:22px;text-align:center}
.login-err{color:#F87171;font-size:12px;margin-top:8px;min-height:18px;text-align:center}
.tc-bar{display:flex;gap:5px;margin-top:14px;justify-content:center}
.tc-bar span{width:28px;height:2.5px;border-radius:2px}

/* ── View-switcher pills (Rows / Donut / Bar) inside panel headers ─── */
.view-switch{display:inline-flex;background:var(--surface2);border:1px solid var(--border);border-radius:100px;padding:2px;gap:2px}
.view-switch button{
  background:transparent;border:none;color:var(--text3);
  font-size:11px;font-weight:600;padding:4px 10px;border-radius:100px;
  cursor:pointer;transition:background .15s,color .15s;font-family:inherit;
  display:inline-flex;align-items:center;gap:4px;
}
.view-switch button:hover{color:var(--text2)}
.view-switch button.active{
  background:linear-gradient(135deg,rgba(110,168,254,0.25),rgba(10,61,145,0.45));
  color:#fff;box-shadow:0 1px 4px rgba(10,61,145,0.30);
}
.chart-box{padding:14px 18px 18px}

/* ═══════════ ANALYTICS — DV SYSTEM ALIGNMENT ═══════════ */
#page-analytics{font-family:'Inter',-apple-system,sans-serif}

/* command bar → DV surface */
#page-analytics .av2-cmd-bar{border-radius:20px;
  background:linear-gradient(180deg,rgba(255,255,255,.028),rgba(255,255,255,0) 30%),#0e1626;
  border:1px solid rgba(148,163,184,.10);
  box-shadow:0 1px 0 rgba(255,255,255,.04) inset,0 24px 48px -24px rgba(2,6,18,.8);
  animation:dvIn .4s both}
#page-analytics .av2-bs-trigger{border-radius:20px 0 0 20px}
#page-analytics .av2-bs-panel{background:#0e1626;border-color:rgba(148,163,184,.16);border-radius:16px}
#page-analytics .av2-bs-search-row{background:rgba(148,163,184,.05)}

/* KPI cards → DV cards with mono numbers */
#page-analytics .av2-kpi-row{gap:14px;margin-bottom:14px}
#page-analytics .av2-kpi{border-radius:20px;padding:18px 22px;
  background:linear-gradient(180deg,rgba(255,255,255,.028),rgba(255,255,255,0) 30%),#0e1626;
  border:1px solid rgba(148,163,184,.10);
  box-shadow:0 1px 0 rgba(255,255,255,.04) inset,0 24px 48px -24px rgba(2,6,18,.8);
  animation:dvIn .5s both}
#page-analytics .av2-kpi:nth-child(2){animation-delay:.06s}
#page-analytics .av2-kpi:nth-child(3){animation-delay:.12s}
#page-analytics .av2-kpi:nth-child(4){animation-delay:.18s}
#page-analytics .av2-kpi:hover{border-color:rgba(148,163,184,.2)}
#page-analytics .av2-kpi .klbl{font-size:9.5px;font-weight:800;letter-spacing:1.4px;color:#64748b!important;margin-bottom:11px}
#page-analytics .av2-kpi .kval{font-family:'JetBrains Mono',monospace;font-size:29px;font-weight:800;letter-spacing:-1.2px;color:#f8fafc}
#page-analytics .av2-kpi .ksub{font-size:10.5px;color:#64748b;margin-top:6px}
#page-analytics .av2-kpi.alert{background:linear-gradient(180deg,rgba(239,68,68,.05),rgba(255,255,255,0) 40%),#0e1626;
  border-color:rgba(239,68,68,.18)}

/* panels → DV surface */
#page-analytics .panel{border-radius:20px;
  background:linear-gradient(180deg,rgba(255,255,255,.028),rgba(255,255,255,0) 30%),#0e1626;
  border:1px solid rgba(148,163,184,.10);
  box-shadow:0 1px 0 rgba(255,255,255,.04) inset,0 24px 48px -24px rgba(2,6,18,.8);
  animation:dvIn .55s both}
#page-analytics .av2-split2{gap:14px;margin-bottom:14px}
#page-analytics .av2-split2 .panel:nth-child(2){animation-delay:.08s}
#page-analytics .panel-title{font-size:11px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:#64748b}
#page-analytics .av2-accent{width:3px;height:13px;border-radius:2px;box-shadow:0 0 10px currentColor}

/* view switch → dark segmented control */
#page-analytics .view-switch{background:rgba(2,6,16,.55);border:1px solid rgba(148,163,184,.12);border-radius:11px;padding:3px;gap:2px}
#page-analytics .view-switch button{font-size:10.5px;font-weight:700;color:#64748b;border:none;background:transparent;
  padding:6px 12px;border-radius:8px;cursor:pointer;letter-spacing:.3px;transition:all .15s;font-family:inherit}
#page-analytics .view-switch button:hover{color:#e2e8f0;background:rgba(148,163,184,.1)}
#page-analytics .view-switch button.active{color:#fff;background:linear-gradient(135deg,#2563eb,#3b82f6);
  box-shadow:0 2px 12px rgba(59,130,246,.4)}

/* rows + values polish */
#page-analytics .av2-row{border-radius:12px}
#page-analytics .av2-row:hover{background:rgba(148,163,184,.05)}
#page-analytics .av2-row.open{background:rgba(59,130,246,.06)}
#page-analytics .av2-name{font-weight:700;color:#e2e8f0}
#page-analytics .chart-box{padding:14px 20px 20px}

/* subtitle text */
#page-analytics [id$='Subtitle']{font-size:10.5px!important;color:#475569!important}

/* ═══════ VOTER LIST V2 — Electoral Roll Command ═══════ */
#page-voters{font-family:'Inter',-apple-system,sans-serif}

/* command bar */
.vl-bar{display:flex;align-items:stretch;gap:12px;margin-bottom:12px;flex-wrap:wrap;
  background:linear-gradient(180deg,rgba(255,255,255,.028),rgba(255,255,255,0) 30%),#0e1626;
  border:1px solid rgba(148,163,184,.10);border-radius:20px;padding:14px;
  box-shadow:0 1px 0 rgba(255,255,255,.04) inset,0 24px 48px -24px rgba(2,6,18,.8);
  position:relative;z-index:400;animation:dvIn .5s both}
.vl-search{flex:2;min-width:260px;display:flex;align-items:center;gap:11px;
  background:rgba(2,6,16,.55);border:1px solid rgba(148,163,184,.14);border-radius:13px;padding:0 16px;transition:border-color .15s,box-shadow .15s}
.vl-search:focus-within{border-color:rgba(59,130,246,.55);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.vl-search span{font-size:15px;opacity:.7}
.vl-search input{flex:1;background:transparent;border:none;outline:none;color:var(--text);font-size:13.5px;font-family:inherit;padding:13px 0}
.vl-search input::placeholder{color:#475569}

/* booth selector (searchable) */
.vl-bs-wrap{position:relative;flex:1.2;min-width:230px}
.vl-bs-trigger{display:flex;align-items:center;gap:10px;height:100%;min-height:46px;padding:6px 14px;cursor:pointer;
  background:rgba(2,6,16,.55);border:1px solid rgba(148,163,184,.14);border-radius:13px;transition:border-color .15s;user-select:none}
.vl-bs-trigger:hover{border-color:rgba(148,163,184,.3)}
.vl-bs-text{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}
.vl-bs-lbl{font-size:9px;font-weight:800;color:#475569;letter-spacing:1.2px;text-transform:uppercase;line-height:1}
.vl-bs-val{font-size:12.5px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vl-bs-caret{font-size:10px;color:var(--text3);transition:transform .2s}
.vl-bs-caret.open{transform:rotate(180deg)}
.vl-bs-panel{position:absolute;top:calc(100% + 8px);left:0;min-width:360px;max-width:440px;
  background:#0e1626;border:1px solid rgba(148,163,184,.16);border-radius:16px;
  box-shadow:0 20px 60px rgba(0,0,0,.6),0 4px 16px rgba(0,0,0,.35);z-index:500;overflow:hidden;animation:av2PanelIn .15s ease}
.vl-bs-search-row{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border);background:rgba(2,6,16,.45)}
.vl-bs-search-row input{flex:1;background:transparent;border:none;outline:none;color:var(--text);font-size:12.5px;font-family:inherit}
.vl-bs-list{max-height:300px;overflow-y:auto;padding:6px}
.vl-bs-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;cursor:pointer;transition:background .12s}
.vl-bs-item:hover{background:rgba(148,163,184,.08)}
.vl-bs-item.active{background:linear-gradient(90deg,rgba(10,61,145,.35),rgba(10,61,145,.12));border-left:2px solid #6EA8FE}
.vl-bs-item .bnum{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;color:#6EA8FE;background:rgba(110,168,254,.12);border-radius:7px;padding:3px 8px;flex-shrink:0}
.vl-bs-item .bname{flex:1;min-width:0;font-size:12px;font-weight:600;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vl-bs-item .bcount{font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--text3)}

/* filter rail */
.vl-filters{display:grid;grid-template-columns:repeat(7,1fr) auto;gap:10px;margin-bottom:12px;
  background:linear-gradient(180deg,rgba(255,255,255,.028),rgba(255,255,255,0) 30%),#0e1626;
  border:1px solid rgba(148,163,184,.10);border-radius:20px;padding:14px;animation:dvIn .5s .06s both}
@media (max-width:1400px){.vl-filters{grid-template-columns:repeat(4,1fr)}}
@media (max-width:900px){.vl-filters{grid-template-columns:repeat(2,1fr)}}
.vl-f{display:flex;flex-direction:column;gap:5px;min-width:0}
.vl-f label{font-size:9px;font-weight:800;color:#475569;letter-spacing:1.2px;text-transform:uppercase;padding-left:2px}
.vl-f select{appearance:none;-webkit-appearance:none;width:100%;padding:9px 28px 9px 12px;border-radius:11px;
  background:rgba(2,6,16,.55) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%2364748b' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 11px center;
  border:1px solid rgba(148,163,184,.14);color:var(--text2);font-size:12px;font-weight:600;font-family:inherit;outline:none;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.vl-f select{color-scheme:dark}
.vl-f select option{background:#0e1626;color:#e2e8f0}
.vl-f select:hover{border-color:rgba(148,163,184,.3)}
.vl-f select:focus{border-color:rgba(59,130,246,.5)}
.vl-f select.on{border-color:rgba(59,130,246,.55);color:#93C5FD;box-shadow:0 0 0 3px rgba(59,130,246,.10);background-color:rgba(37,99,235,.08)}
.vl-clear{align-self:end;display:none;align-items:center;gap:6px;padding:9px 14px;border-radius:11px;cursor:pointer;white-space:nowrap;
  background:rgba(248,113,113,.1);border:1px solid rgba(248,113,113,.28);color:#F87171;font-size:11.5px;font-weight:700;transition:all .15s}
.vl-clear:hover{background:rgba(248,113,113,.2)}
.vl-clear.show{display:inline-flex}

/* results panel */
.vl-panel{background:linear-gradient(180deg,rgba(255,255,255,.028),rgba(255,255,255,0) 30%),#0e1626;
  border:1px solid rgba(148,163,184,.10);border-radius:20px;overflow:hidden;
  box-shadow:0 1px 0 rgba(255,255,255,.04) inset,0 24px 48px -24px rgba(2,6,18,.8);animation:dvIn .5s .1s both}
.vl-head{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid rgba(148,163,184,.09);flex-wrap:wrap}
.vl-head-title{font-size:11px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:#64748b}
.vl-count{font-family:'JetBrains Mono',monospace;font-size:11.5px;font-weight:700;color:#93C5FD;
  background:rgba(59,130,246,.1);border:1px solid rgba(59,130,246,.22);border-radius:20px;padding:3px 11px}
.vl-sortbar{display:flex;gap:4px;margin-left:auto;background:rgba(2,6,16,.55);border:1px solid rgba(148,163,184,.12);border-radius:10px;padding:3px}
.vl-sortbar button{border:none;background:transparent;color:#64748b;font-size:10.5px;font-weight:700;font-family:inherit;
  padding:5px 11px;border-radius:7px;cursor:pointer;letter-spacing:.3px;transition:all .15s;user-select:none}
.vl-sortbar button:hover{color:#e2e8f0;background:rgba(148,163,184,.1)}

/* voter rows — aligned column grid */
.vl-scroll{overflow-x:auto}
.vl-list{display:flex;flex-direction:column}
.vl-cols{display:grid;
  grid-template-columns:42px 114px minmax(150px,1.5fr) minmax(132px,1.3fr) 40px 32px 62px 90px 82px 68px 60px 54px 96px 70px;
  gap:10px;align-items:center;padding:0 16px;min-width:1260px}
.vl-thead{padding-top:11px;padding-bottom:11px;border-bottom:1px solid rgba(148,163,184,.12);background:rgba(2,6,16,.35)}
.vl-thead span{font-size:9px;font-weight:800;letter-spacing:1.1px;text-transform:uppercase;color:#475569;white-space:nowrap;overflow:hidden;font-family:'Inter',sans-serif}
.vl-row{padding-top:9px;padding-bottom:9px;cursor:pointer;border-bottom:1px solid rgba(148,163,184,.06);
  transition:background .13s;position:relative}
.vl-row:hover{background:rgba(59,130,246,.055)}
.vl-row:hover::before{content:'';position:absolute;left:0;top:12%;bottom:12%;width:2.5px;border-radius:0 3px 3px 0;background:linear-gradient(180deg,#2563eb,#60a5fa);box-shadow:0 0 12px rgba(59,130,246,.5)}
.vl-serial{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;color:#475569;text-align:right}
.vl-name{font-size:13px;font-weight:700;color:#EDF2F9;letter-spacing:.1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vl-name em{color:var(--text3);font-style:italic;font-weight:600}
.vl-rel{font-size:12.5px;color:#AEBACD;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vl-rel .pre{font-size:10px;color:#5B6B85;margin-right:5px}
.vl-age{font-size:12.5px;font-weight:600;color:#CBD5E1;white-space:nowrap}
.vl-sex{font-size:12px;font-weight:700;white-space:nowrap}
.vl-sex.m{color:#93C5FD}.vl-sex.f{color:#F9A8D4}.vl-sex.o{color:#8FA0BC}
.vl-epic{font-family:'JetBrains Mono',monospace;font-size:10.5px;color:#8FA0BC;letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vl-house,.vl-occ,.vl-sur,.vl-rlg,.vl-cst{font-size:12px;color:#8FA0BC;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vl-sur{color:#C4CEDE;font-weight:600}
.vl-booth-chip{font-family:'JetBrains Mono',monospace;font-size:10.5px;font-weight:700;color:#67E8F9;
  background:rgba(6,182,212,.1);border:1px solid rgba(6,182,212,.25);border-radius:8px;padding:3px 8px;white-space:nowrap;justify-self:start}
.vl-party{font-size:10px;font-weight:800;letter-spacing:.6px;border-radius:7px;padding:4px 0;text-transform:uppercase;text-align:center;display:block;width:92px}
.vl-party.inc{background:rgba(37,99,235,.16);color:#93C5FD;border:1px solid rgba(59,130,246,.35)}
.vl-party.bjp{background:rgba(249,115,22,.14);color:#FDBA74;border:1px solid rgba(249,115,22,.32)}
.vl-party.blank{background:rgba(148,163,184,.12);color:#CBD5E1;border:1px solid rgba(148,163,184,.28)}
.vl-party.ukd{background:rgba(22,163,74,.14);color:#86EFAC;border:1px solid rgba(22,163,74,.34)}
.vl-party.ind{background:rgba(100,116,139,.16);color:#CBD5E1;border:1px solid rgba(100,116,139,.34)}
.vl-party.nota{background:rgba(225,29,72,.14);color:#FDA4AF;border:1px solid rgba(225,29,72,.34)}
.vl-party.unmet{background:rgba(248,113,113,.08);color:#F87171;border:1px dashed rgba(248,113,113,.35)}
.vl-acts{display:flex;gap:5px;justify-content:flex-end;opacity:0;transition:opacity .15s}
.vl-row:hover .vl-acts{opacity:1}
.vl-acts button{width:29px;height:29px;border-radius:9px;border:1px solid rgba(148,163,184,.15);background:rgba(2,6,16,.6);
  color:var(--text2);font-size:12px;cursor:pointer;transition:all .13s;display:flex;align-items:center;justify-content:center}
.vl-acts button:hover{border-color:rgba(59,130,246,.5);background:rgba(37,99,235,.15);transform:translateY(-1px)}
@media (max-width:1000px){.vl-acts{opacity:1}}
.vl-dim{color:#3d4a61}

/* pagination */
.vl-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:13px 18px;border-top:1px solid rgba(148,163,184,.09);flex-wrap:wrap}
.vl-foot-info{font-family:'JetBrains Mono',monospace;font-size:10.5px;color:#475569}
.vl-pag{display:flex;gap:5px;align-items:center}
.vl-pag button{min-width:32px;height:32px;padding:0 10px;border-radius:9px;border:1px solid rgba(148,163,184,.14);
  background:rgba(2,6,16,.55);color:var(--text2);font-size:11.5px;font-weight:700;font-family:'JetBrains Mono',monospace;cursor:pointer;transition:all .13s}
.vl-pag button:hover:not(:disabled){border-color:rgba(59,130,246,.5);color:#93C5FD}
.vl-pag button:disabled{opacity:.35;cursor:default}
.vl-pag button.cur{background:linear-gradient(135deg,#2563eb,#3b82f6);border-color:transparent;color:#fff;box-shadow:0 2px 12px rgba(59,130,246,.35)}

/* ── Contacted Voters — same vl chrome, contacted-specific column grid ── */
#page-contacted{font-family:'Inter',-apple-system,sans-serif}
.cv-cols{display:grid;
  grid-template-columns:42px 114px minmax(150px,1.5fr) minmax(130px,1.3fr) 40px 32px 56px 72px 60px 112px 96px 132px 104px;
  gap:10px;align-items:center;padding:0 16px;min-width:1300px}
.cv-cols > div{min-width:0}                 /* let cells clip instead of overflowing */
.cv-cols .cv-date{overflow:hidden;text-overflow:ellipsis}
.cv-cols .cv-agent{overflow:hidden;text-overflow:ellipsis}
/* roomier rows so each contacted voter stands out clearly */
#page-contacted .vl-row{padding-top:15px;padding-bottom:15px}
#page-contacted .vl-name{font-size:13.5px}
.cv-phone{font-size:11.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cv-phone a{color:#34D399;text-decoration:none}
.cv-phone a:hover{text-decoration:underline}
.cv-date{font-family:'JetBrains Mono',monospace;font-size:10.5px;color:#AEBACD;white-space:nowrap}
.cv-agent{font-size:12px;color:#8FA0BC;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cv-since-row .vl-f input[type=date]{appearance:none;width:100%;padding:9px 12px;border-radius:11px;
  background:rgba(2,6,16,.55);border:1px solid rgba(148,163,184,.14);color:var(--text2);
  font-size:12px;font-weight:600;font-family:inherit;outline:none;cursor:pointer;color-scheme:dark}
.cv-since-row .vl-f input[type=date]:hover{border-color:rgba(148,163,184,.3)}

/* ── voter profile modal ── */
.vp-modal{background:#0e1626;border:1px solid rgba(148,163,184,.14);border-radius:22px;width:100%;max-width:780px;
  max-height:88vh;overflow-y:auto;box-shadow:0 40px 100px rgba(0,0,0,.7);animation:slideUp .25s ease;padding:0}
.vp-hero{position:relative;padding:24px 26px 20px;overflow:hidden;
  background:linear-gradient(115deg,#0b1530 0%,#0e1f4b 45%,#122a63 75%,#0b1530 100%);border-bottom:1px solid rgba(148,163,184,.12)}
.vp-hero::before{content:'';position:absolute;inset:0 0 auto 0;height:3px;
  background:linear-gradient(90deg,#FF9933 0%,#FF9933 31%,#f4f6fb 34%,#f4f6fb 49%,#138808 52%,#138808 100%);opacity:.85}
.vp-hero::after{content:'';position:absolute;top:-70px;right:-50px;width:260px;height:260px;border-radius:50%;
  background:radial-gradient(circle,rgba(110,168,254,.16),transparent 65%);pointer-events:none}
.vp-hero-row{display:flex;align-items:flex-start;gap:16px;position:relative;z-index:1}
.vp-ava{width:62px;height:62px;border-radius:18px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:22px;flex-shrink:0}
.vp-ava-img{object-fit:cover;cursor:pointer;border:1px solid rgba(148,163,184,.25);box-shadow:0 4px 14px rgba(0,0,0,.35)}
.vp-name{font-family:'Manrope',sans-serif;font-size:22px;font-weight:800;color:#fff;letter-spacing:.2px;line-height:1.15}
.vp-subline{font-size:12px;color:#8fa3c8;margin-top:5px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.vp-subline .mono{font-family:'JetBrains Mono',monospace;font-size:11px;color:#6b82ab}
.vp-close{position:absolute;top:16px;right:16px;z-index:2;width:32px;height:32px;border-radius:10px;border:1px solid rgba(148,163,184,.2);
  background:rgba(2,6,16,.5);color:#CBD5E1;font-size:14px;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center}
.vp-close:hover{background:rgba(248,113,113,.18);border-color:rgba(248,113,113,.4);color:#F87171}
.vp-badges{display:flex;gap:7px;margin-top:11px;flex-wrap:wrap;position:relative;z-index:1}
.vp-chip{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700;line-height:1.55;
  color:#CBD5E1;background:rgba(148,163,184,.1);border:1px solid rgba(148,163,184,.2);border-radius:8px;padding:3px 10px;white-space:nowrap}
.vp-chip-l{font-size:9px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:#64748b;margin-right:5px}
.vp-chip-booth{font-family:'JetBrains Mono',monospace;color:#67E8F9;background:rgba(6,182,212,.1);border-color:rgba(6,182,212,.28)}
.vp-chip-blue{color:#93C5FD;background:rgba(59,130,246,.1);border-color:rgba(59,130,246,.25)}
.vp-body{padding:20px 22px 24px;display:flex;flex-direction:column;gap:14px}
.vp-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:760px){.vp-grid{grid-template-columns:1fr}}
.vp-card{background:rgba(2,6,16,.4);border:1px solid rgba(148,163,184,.09);border-radius:15px;padding:15px 17px}
.vp-card-title{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:#64748b;margin-bottom:11px}
.vp-card-title .tick{width:3px;height:12px;border-radius:2px;box-shadow:0 0 8px currentColor}
.vp-kv{display:flex;justify-content:space-between;gap:10px;padding:5.5px 0;font-size:12px;border-bottom:1px dashed rgba(148,163,184,.07)}
.vp-kv:last-child{border-bottom:none}
.vp-kv .k{color:#64748b;font-weight:600;flex-shrink:0}
.vp-kv .v{color:#DCE4F0;font-weight:600;text-align:right;min-width:0;overflow-wrap:anywhere}
.vp-kv .v.mono{font-family:'JetBrains Mono',monospace;font-size:11.5px}
.vp-empty{padding:14px;text-align:center;color:#475569;font-size:11.5px}
.vp-item{padding:9px 11px;border-radius:11px;background:rgba(148,163,184,.04);border:1px solid rgba(148,163,184,.07);margin-bottom:7px}
.vp-item:last-child{margin-bottom:0}
/* ── contact-status "marked by agent" compact card ── */
.vp-mk{display:flex;flex-direction:column;gap:11px}
.vp-mk-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.vp-mk-by{font-size:12px;color:#8fa3c8;font-weight:600}
.vp-mk-by b{color:#DCE4F0}
.vp-mk-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media (max-width:760px){.vp-mk-grid{grid-template-columns:1fr}}
.vp-mk-chip{display:flex;align-items:center;gap:9px;padding:8px 11px;border-radius:12px;
  background:rgba(148,163,184,.05);border:1px solid rgba(148,163,184,.08);min-width:0}
.vp-mk-chip .i{font-size:14px;flex-shrink:0;line-height:1}
.vp-mk-chip .t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;color:#DCE4F0}
.vp-mk-chip .lbl{display:block;font-size:9px;letter-spacing:.5px;text-transform:uppercase;color:#64748b;font-weight:800;margin-bottom:1px}
.vp-mk-cmt{font-size:12px;color:#c7d4ec;font-style:italic;line-height:1.5;
  background:rgba(110,168,254,.06);border-left:2px solid rgba(110,168,254,.45);border-radius:0 9px 9px 0;padding:8px 12px}
.vp-photo{width:100%;max-height:220px;object-fit:cover;border-radius:12px;border:1px solid rgba(148,163,184,.14);margin-top:10px;cursor:pointer}
/* ═══════ LIVE BATTLEFIELD ═══════ */
.bf-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:14px}
@media (max-width:1180px){.bf-grid{grid-template-columns:1fr}}
.bf-hero{
  padding:14px 18px;border-radius:14px;
  background:
    radial-gradient(1200px 200px at 10% 0%,rgba(110,168,254,.10),transparent 60%),
    radial-gradient(900px 180px at 95% 100%,rgba(255,153,51,.10),transparent 60%),
    linear-gradient(135deg,#0f1a2c,#0c1422);
  border:1px solid var(--border);
  display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  margin-bottom:14px;
  box-shadow:0 6px 24px rgba(0,0,0,.30),inset 0 1px 0 rgba(255,255,255,.04);
}
.bf-hero .bf-live{display:flex;align-items:center;gap:8px;font-weight:800;font-size:12px;letter-spacing:.5px;color:#fff}
.bf-hero .bf-clock{color:var(--text2);font-weight:700;font-size:12px}
.bf-hero .bf-spacer{flex:1}
.bf-hero .bf-stat{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.bf-hero .bf-stat .lbl{font-size:10px;color:var(--text3);letter-spacing:.6px;font-weight:700;text-transform:uppercase}
.bf-hero .bf-stat .val{font-size:18px;font-weight:800;color:#fff}
#bf-map{height:560px;border-radius:14px;border:1px solid var(--border);box-shadow:0 6px 24px rgba(0,0,0,.35);background:#0a1322}
.bf-side{display:flex;flex-direction:column;gap:14px}
.bf-card{padding:14px 16px;border-radius:14px;background:var(--surface);border:1px solid var(--border);box-shadow:0 4px 14px rgba(0,0,0,.20),inset 0 1px 0 rgba(255,255,255,.03)}
.bf-card h4{margin:0 0 10px;font-size:11px;color:var(--text3);font-weight:800;letter-spacing:.8px;text-transform:uppercase;display:flex;align-items:center;gap:6px}
.bf-gauge{display:flex;align-items:center;justify-content:center;height:160px}
.bf-splitbar{display:flex;height:14px;border-radius:8px;overflow:hidden;box-shadow:inset 0 1px 2px rgba(0,0,0,.4)}
.bf-splitbar > div{display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5)}
.bf-legend{display:flex;gap:14px;font-size:11px;color:var(--text2);margin-top:8px;flex-wrap:wrap}
.bf-legend .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;vertical-align:middle}
.bf-stories{display:flex;flex-direction:column;gap:8px}
.bf-story{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:10px;background:rgba(110,168,254,.06);border-left:3px solid var(--blue-mid);font-size:12px;color:var(--text);line-height:1.45}
.bf-ticker{max-height:240px;overflow:auto;display:flex;flex-direction:column;gap:6px}
.bf-tk-row{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.04);font-size:11px}
.bf-tk-row .tk-tag{font-size:10px;font-weight:800;padding:2px 6px;border-radius:5px}
.tk-INC{background:rgba(59,130,246,.20);color:#93c5fd}
.tk-BJP{background:rgba(249,115,22,.20);color:#fdba74}
.tk-BLANK{background:rgba(148,163,184,.20);color:#cbd5e1}
.bf-tk-row .tk-meta{margin-left:auto;color:var(--text3);font-size:10px}
.bf-booth-detail{padding:12px;border-radius:10px;background:rgba(110,168,254,.05);border:1px dashed rgba(110,168,254,.25);font-size:12px;color:var(--text2);min-height:60px}
.leaflet-popup-content-wrapper{background:#101b2e;color:#fff;border:1px solid var(--border);border-radius:10px}
.leaflet-popup-tip{background:#101b2e}
.leaflet-popup-content{margin:10px 12px;font-size:12px}
.leaflet-container{background:#0a1322}
.bf-heatmap{overflow:auto;max-height:320px}
.bf-heatmap table{border-collapse:collapse;font-size:11px;width:100%}
.bf-heatmap th,.bf-heatmap td{padding:6px 8px;text-align:center;border:1px solid rgba(255,255,255,.04);min-width:36px;color:#fff;font-weight:700}
.bf-heatmap th{background:rgba(255,255,255,.04);color:var(--text3);font-weight:800;font-size:10px;letter-spacing:.4px;text-transform:uppercase;position:sticky;top:0;z-index:1}
.bf-heatmap td.lbl{background:rgba(255,255,255,.04);color:var(--text2);font-weight:700;text-align:left;position:sticky;left:0}
.bf-bigval{font-size:28px;font-weight:900;color:#fff;line-height:1}
.bf-bigval-sub{font-size:11px;color:var(--text3);font-weight:700;letter-spacing:.4px;text-transform:uppercase;margin-top:4px}
.bf-overlay-toggles{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.bf-overlay-toggles button{font-size:10px;padding:4px 9px;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--text2);cursor:pointer;font-weight:700;letter-spacing:.3px}
.bf-overlay-toggles button.active{background:linear-gradient(135deg,rgba(110,168,254,.25),rgba(10,61,145,.45));color:#fff;border-color:rgba(110,168,254,.4)}
.bf-tip{background:#101b2e!important;border:1px solid #243149!important;color:#e2e8f0!important;font-size:11px!important;padding:5px 8px!important;border-radius:6px!important}
#bf-map.bf-fullscreen{position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;z-index:9999!important;border-radius:0!important}
.bf-map-wrap{position:relative}
.bf-fs-btn{position:absolute;top:10px;right:10px;z-index:1000;background:rgba(12,20,34,.85);border:1px solid rgba(255,255,255,.15);color:#fff;border-radius:7px;padding:5px 9px;font-size:12px;cursor:pointer;backdrop-filter:blur(4px);transition:background .2s}
.bf-fs-btn:hover{background:rgba(30,50,90,.95)}
.bf-fs-close{position:fixed;top:14px;right:14px;z-index:10000;background:rgba(12,20,34,.92);border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:8px;padding:6px 12px;font-size:13px;cursor:pointer;display:none}
.bf-desc{font-size:11px;color:var(--text3);margin-bottom:8px;line-height:1.5}
/* ═══════ BUBBLE VISUALIZATION ═══════ */
.bubble-panel{background:#06101e;border:1px solid rgba(255,255,255,.07);border-radius:14px;overflow:hidden;margin-bottom:14px}
.bubble-toolbar{display:flex;gap:10px;padding:12px 16px;background:#080f1f;border-bottom:1px solid rgba(255,255,255,.06);align-items:center;flex-wrap:wrap}
.bubble-toolbar select,.bubble-toolbar input{background:#0d1929;border:1px solid rgba(255,255,255,.1);color:#e2e8f0;border-radius:7px;padding:6px 10px;font-size:12px;outline:none}
.bubble-toolbar select:focus,.bubble-toolbar input:focus{border-color:rgba(99,179,237,.4)}
.bubble-canvas-wrap{background:radial-gradient(ellipse at 50% 50%,#091629 0%,#040c18 100%);overflow:hidden;position:relative}
.bubble-empty{padding:40px;text-align:center;color:rgba(255,255,255,.15);font-size:13px}
/* ── Word Cloud ── */
.wc-container{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 14px;padding:28px 24px;background:radial-gradient(ellipse at 40% 55%,#081626 0%,#030810 100%);min-height:180px}
.wc-word{cursor:pointer;line-height:1.25;transition:opacity .12s,transform .15s,text-shadow .15s;display:inline-block;user-select:none;white-space:nowrap;letter-spacing:.4px}
.wc-word:hover{opacity:1!important;transform:scale(1.18);text-shadow:0 0 16px currentColor,0 0 32px currentColor;z-index:2;position:relative}
.wc-word.wc-sel{opacity:1!important;text-shadow:0 0 14px currentColor,0 0 28px currentColor;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1.5px;position:relative;z-index:3}
.wc-hover-bar{padding:10px 18px;background:#020508;border-top:1px solid rgba(255,255,255,.05);display:flex;align-items:center;gap:14px;flex-wrap:wrap;min-height:46px}
.wc-hb-name{font-size:14px;font-weight:900;white-space:nowrap}
.wc-hb-chip{font-size:11px;color:#475569;white-space:nowrap}
.wc-hb-chip b{color:#cbd5e1}
.wc-hb-hint{font-size:11px;color:#1a3050;font-style:italic}
.wc-hb-barwrap{flex:1;min-width:100px;height:6px;background:rgba(255,255,255,.06);border-radius:4px;overflow:hidden;display:flex}
.wc-hb-inc{height:100%;background:#22C55E;border-radius:4px 0 0 4px}
.wc-hb-bjp{height:100%;background:#F97316}
.wc-hb-blank{height:100%;background:#475569;border-radius:0 4px 4px 0}
.bubble-stats-bar{display:flex;gap:20px;padding:8px 16px;background:#06101e;border-top:1px solid rgba(255,255,255,.04);font-size:11px;color:#475569;flex-wrap:wrap;align-items:center}
.bubble-stats-bar .bleg{display:flex;align-items:center;gap:5px}
.bubble-stats-bar .bdot{display:inline-block;width:9px;height:9px;border-radius:50%}
.bubble-voter-panel{background:#06101e;border-top:2px solid rgba(99,179,237,.12)}
.bubble-voter-header{padding:10px 16px;background:#080f1f;border-bottom:1px solid rgba(255,255,255,.05);display:flex;align-items:center;justify-content:space-between;gap:10px}
.bubble-voter-header h5{font-size:13px;font-weight:800;color:#e2e8f0;margin:0;letter-spacing:.2px}
.bubble-voter-header .bvh-meta{font-size:11px;color:#475569}
.bubble-voter-scroll{max-height:420px;overflow-y:auto;background:#000810}
.bubble-voter-scroll table{width:100%;border-collapse:collapse;font-size:12px}
.bubble-voter-scroll thead th{background:#001020;color:#3a7a9a;font-weight:800;text-transform:uppercase;font-size:10px;letter-spacing:.8px;padding:8px 14px;text-align:left;border-bottom:1px solid rgba(14,165,233,0.12);position:sticky;top:0;z-index:2}
.bubble-voter-scroll tbody tr{border-bottom:1px solid rgba(14,165,233,0.05);transition:background .12s}
.bubble-voter-scroll tbody tr:hover{background:rgba(14,165,233,0.05)}
.bubble-voter-scroll tbody td{padding:7px 14px;color:#cbd5e1}
.bubble-voter-empty{padding:40px;text-align:center;color:#2a5a7a;font-size:13px;font-style:italic}
.bv-tooltip{position:fixed;background:rgba(5,10,22,.97);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:12px 15px;font-size:12px;color:#e2e8f0;pointer-events:none;z-index:9999;backdrop-filter:blur(12px);box-shadow:0 12px 40px rgba(0,0,0,.8);min-width:180px;display:none;transition:opacity .1s}
.bvt-title{font-size:14px;font-weight:900;margin-bottom:8px;letter-spacing:.3px}
.bvt-row{display:flex;justify-content:space-between;gap:16px;margin-bottom:4px;color:#64748b;font-size:11px}
.bvt-row b{color:#e2e8f0}
.bvt-bar{height:5px;background:rgba(255,255,255,.07);border-radius:3px;overflow:hidden;margin-top:8px}
.bvt-bar-fill{height:100%;border-radius:3px;transition:width .3s}
.bf-booth-opt{padding:8px 12px;font-size:12px;cursor:pointer;border-bottom:1px solid var(--border);color:var(--text);display:flex;justify-content:space-between;align-items:center;gap:8px}
.bf-booth-opt:last-child{border-bottom:none}
.bf-booth-opt:hover{background:var(--surface2)}
.bf-booth-opt .bbo-num{font-weight:800;color:var(--blue);flex-shrink:0}
.bf-booth-opt .bbo-cov{font-size:11px;flex-shrink:0}
/* ════ BOOTH ANALYSIS v2 ════ */
.ba2-type-bar{display:flex;align-items:center;gap:16px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px 24px;margin-bottom:16px;flex-wrap:wrap}
.ba2-elect-btn{display:inline-flex;align-items:center;gap:10px;padding:13px 24px;border:2px solid var(--border);border-radius:10px;background:var(--bg);font-size:14px;font-weight:700;color:var(--text);cursor:pointer;transition:all .15s;white-space:nowrap}
.ba2-elect-btn:hover{border-color:var(--blue-mid);background:rgba(10,61,145,.05);color:var(--blue)}
.ba2-elect-btn.active{border-color:var(--blue);background:rgba(10,61,145,.1);color:var(--blue)}
.ba2-drop-zone{border:2px dashed var(--border2);border-radius:12px;padding:36px;text-align:center;cursor:pointer;transition:all .15s}
.ba2-drop-zone:hover,.ba2-drop-zone.drag{border-color:var(--blue);background:rgba(10,61,145,.03)}
.ba2-th-sort{cursor:pointer;user-select:none;white-space:nowrap;transition:color .12s}
.ba2-th-sort:hover{color:var(--blue-mid)}
.ba2-th-sort.sort-active{color:var(--blue)}
.ba2-sort-arrow{font-size:11px;opacity:.5;margin-left:3px}
.ba2-th-sort.sort-active .ba2-sort-arrow{opacity:1;color:var(--blue)}
.ba2-kpi-strip{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--border);border-top:none}
.ba2-kpi-card{background:var(--surface);border-right:1px solid var(--border);padding:18px 22px}
.ba2-kpi-card:last-child{border-right:none}
.ba2-kpi-lbl{font-size:11px;color:var(--text3);font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}
.ba2-kpi-val{font-size:28px;font-weight:800;color:var(--text);line-height:1}
.ba2-kpi-sub{font-size:11px;color:var(--text3);margin-top:4px}
.ba2-kpi-cand{font-size:12px;color:var(--text2);font-weight:600;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ba2-demo-bar{background:var(--surface);border:1px solid var(--border);border-top:none;padding:14px 20px}
.ba2-analysis-row{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--border);transition:background .12s}
.ba2-analysis-row:hover{background:var(--surface2)}
.ba2-analysis-row:last-child{border-bottom:none}
.ba2-status-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px}
.ba2-status-badge.processing{background:rgba(251,191,36,.15);color:#f59e0b}
.ba2-status-badge.done{background:rgba(74,222,128,.15);color:#22c55e}
.ba2-status-badge.error{background:rgba(239,68,68,.15);color:#ef4444}
.ba2-win{color:var(--green);font-weight:700}
.ba2-lose{color:var(--red);font-weight:700}
.ba2-tie{color:var(--text3);font-weight:600}
/* ════ TESLA WAR-ROOM BUBBLE VIZ ════ */
.sv-panel{background:#00060e;border:1px solid rgba(14,165,233,0.14);border-radius:16px;overflow:hidden;margin-bottom:16px;position:relative}
.sv-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 20px;background:linear-gradient(90deg,#000a18 0%,#000e22 100%);border-bottom:1px solid rgba(14,165,233,0.1);flex-wrap:wrap}
.sv-toolbar-left{display:flex;align-items:center;gap:14px}
.sv-toolbar-title{font-size:11px;font-weight:900;letter-spacing:2.5px;text-transform:uppercase;color:rgba(14,165,233,0.75)}
.sv-count-badge{font-size:11px;color:#2a5a7a;background:rgba(14,165,233,0.07);border:1px solid rgba(14,165,233,0.14);border-radius:20px;padding:2px 11px;white-space:nowrap}
.sv-toolbar-filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sv-filter-group{display:flex;align-items:center;gap:6px}
.sv-filter-lbl{font-size:9px;font-weight:800;letter-spacing:1.5px;color:rgba(14,165,233,0.32);text-transform:uppercase}
.sv-filter-sel{background:#000e1f;border:1px solid rgba(14,165,233,0.18);color:#94a3b8;border-radius:6px;padding:5px 9px;font-size:12px;outline:none;cursor:pointer;transition:border-color .15s}
.sv-filter-sel:focus,.sv-filter-sel:hover{border-color:rgba(14,165,233,0.48);color:#e2e8f0}
.sv-search{background:#000e1f;border:1px solid rgba(14,165,233,0.18);color:#94a3b8;border-radius:6px;padding:5px 11px;font-size:12px;outline:none;width:162px;transition:border-color .15s,color .15s}
.sv-search:focus{border-color:rgba(14,165,233,0.48);color:#e2e8f0}
.sv-search::placeholder{color:#122030}
.sv-canvas-wrap{position:relative}
.sv-canvas{width:100%;height:480px;display:block;background:#00040d;overflow:hidden;position:relative}
.sv-info-bar{padding:8px 20px;background:#000810;border-top:1px solid rgba(14,165,233,0.06);display:flex;align-items:center;gap:14px;flex-wrap:wrap;min-height:44px}
/* ── Surname BRICK WALL (vibrant solid tiles, black mortar) ── */
.sc-brick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:6px;padding:6px;
  background:#05060a;max-height:500px;overflow-y:auto}
.sc-brick-grid::-webkit-scrollbar{width:9px}
.sc-brick-grid::-webkit-scrollbar-track{background:#05060a}
.sc-brick-grid::-webkit-scrollbar-thumb{background:#1c2a3a;border-radius:5px;border:2px solid #05060a}
.sc-brick-grid::-webkit-scrollbar-thumb:hover{background:#2a3f57}
.sc-brick{position:relative;cursor:pointer;border-radius:3px;min-height:62px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:2px;
  padding:8px 10px;box-shadow:inset 0 1px 0 rgba(255,255,255,.22),inset 0 -2px 3px rgba(0,0,0,.18),0 1px 2px rgba(0,0,0,.5);
  transition:transform .1s,box-shadow .1s}
.sc-brick:hover{transform:translateY(-2px);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 8px 20px rgba(0,0,0,.6);z-index:1}
.sc-brick.sel{outline:3px solid #fff;outline-offset:-3px;z-index:1}
.sc-brick-name{font-size:15px;font-weight:800;line-height:1.1;letter-spacing:.2px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.sc-brick-count{font-size:11px;font-weight:700;opacity:.8}
.sv-info-hint{font-size:11px;color:#0c1e2e;font-style:italic;letter-spacing:.3px}
.sv-info-name{font-size:13px;font-weight:900;white-space:nowrap}
.sv-info-chip{font-size:11px;color:#1a3a54;white-space:nowrap}
.sv-info-chip b{color:#8dacc4}
.sv-info-barwrap{flex:1;min-width:80px;height:4px;background:rgba(255,255,255,.05);border-radius:3px;overflow:hidden;display:flex}
.sv-info-inc{height:100%;background:#22C55E;border-radius:3px 0 0 3px}
.sv-info-bjp{height:100%;background:#F97316}
.sv-info-blank{height:100%;background:#1e3a5f;border-radius:0 3px 3px 0}
.sv-legend-bar{display:flex;align-items:center;gap:18px;padding:6px 20px;background:#000810;border-top:1px solid rgba(255,255,255,.025);flex-wrap:wrap}
.sv-leg{display:flex;align-items:center;gap:5px;font-size:10px;color:#183044;letter-spacing:.2px}
.sv-dot{display:inline-block;width:7px;height:7px;border-radius:50%;flex-shrink:0;opacity:.75}
.sv-voter-area{border-top:2px solid rgba(14,165,233,0.15);background:#000810}
.sv-voter-header{display:flex;align-items:center;justify-content:space-between;padding:9px 20px;background:#000d1e;border-bottom:1px solid rgba(14,165,233,0.08)}
.sv-voter-header-left{display:flex;align-items:center;gap:10px}
.sv-voter-caret{font-size:9px;font-weight:800;letter-spacing:1.5px;color:rgba(14,165,233,0.4);text-transform:uppercase}
.sv-voter-title{font-size:13px;font-weight:900;color:#e2e8f0;letter-spacing:.3px}
.sv-voter-meta{font-size:11px;color:#1e4060}
.sv-voter-close{background:none;border:1px solid rgba(248,113,113,0);color:#1a3a54;cursor:pointer;font-size:14px;padding:3px 8px;line-height:1;transition:color .15s,background .15s,border-color .15s;border-radius:5px}
.sv-voter-close:hover{color:#F87171;background:rgba(248,113,113,0.08);border-color:rgba(248,113,113,0.2)}

/* ═══════════════ AGENT PERFORMANCE — premium ═══════════════ */
#page-performance .ap-award{position:relative;display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:14px;
  background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,0) 40%),#0e1626;
  border:1px solid rgba(148,163,184,.10);overflow:hidden;cursor:pointer;
  box-shadow:0 1px 0 rgba(255,255,255,.04) inset,0 14px 30px -18px rgba(2,6,18,.9);
  transition:transform .15s,border-color .15s,box-shadow .15s;animation:dvIn .5s both}
#page-performance .ap-award::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--awc);box-shadow:0 0 14px var(--awc)}
#page-performance .ap-award:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--awc) 45%,transparent);box-shadow:0 1px 0 rgba(255,255,255,.05) inset,0 18px 36px -16px rgba(2,6,18,.95)}
#page-performance .ap-award .ic{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;
  background:color-mix(in srgb,var(--awc) 16%,transparent);border:1px solid color-mix(in srgb,var(--awc) 38%,transparent)}
#page-performance .ap-award .lbl{font-size:8.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#page-performance .ap-award .nm{font-size:12.5px;font-weight:800;color:#EDF2F9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
#page-performance .ap-award .nm small{font-weight:600;color:#64748b;font-size:10px;font-family:'JetBrains Mono',monospace}

#page-performance .ap-row{position:relative;display:flex;align-items:center;gap:18px;padding:13px 18px;border-radius:16px;flex-wrap:wrap;cursor:pointer;overflow:hidden;
  background:linear-gradient(180deg,rgba(255,255,255,.028),rgba(255,255,255,0) 26%),#0e1626;
  border:1px solid rgba(148,163,184,.10);
  box-shadow:0 1px 0 rgba(255,255,255,.04) inset,0 18px 40px -24px rgba(2,6,18,.85);
  transition:transform .15s,border-color .15s,box-shadow .15s;animation:dvIn .5s both}
#page-performance .ap-row::after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(130% 120% at 0% 0%,rgba(110,168,254,.06),transparent 42%)}
#page-performance .ap-row:hover{transform:translateY(-2px);border-color:rgba(110,168,254,.45);box-shadow:0 1px 0 rgba(255,255,255,.06) inset,0 24px 50px -22px rgba(2,6,18,.95)}
#page-performance .ap-row>*{position:relative;z-index:1}
#page-performance .ap-rank{width:30px;text-align:center;font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:800;color:#475569;flex-shrink:0}
#page-performance .ap-rank.top{font-size:21px;line-height:1}
#page-performance .ap-id{display:flex;align-items:center;gap:11px;flex:1 1 200px;min-width:0}
#page-performance .ap-av{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:14px;flex-shrink:0;
  background:linear-gradient(135deg,#2563eb,#60a5fa);box-shadow:0 0 0 2px rgba(96,165,250,.22),0 4px 14px rgba(37,99,235,.4)}
#page-performance .ap-av.g1{background:linear-gradient(135deg,#f59e0b,#fcd34d);box-shadow:0 0 0 2px rgba(252,211,77,.3),0 4px 16px rgba(245,158,11,.45)}
#page-performance .ap-av.g2{background:linear-gradient(135deg,#64748b,#cbd5e1);box-shadow:0 0 0 2px rgba(203,213,225,.25),0 4px 16px rgba(100,116,139,.4)}
#page-performance .ap-av.g3{background:linear-gradient(135deg,#b45309,#fca571);box-shadow:0 0 0 2px rgba(252,165,113,.25),0 4px 16px rgba(180,83,9,.4)}
#page-performance .ap-name{font-size:13.5px;font-weight:800;color:#EDF2F9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}
#page-performance .ap-meta{font-size:10.5px;color:#5B6B85;font-family:'JetBrains Mono',monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
#page-performance .ap-stat{text-align:center;min-width:50px}
#page-performance .ap-stat .v{font-family:'JetBrains Mono',monospace;font-size:19px;font-weight:800;line-height:1}
#page-performance .ap-stat .k{font-size:8px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:#475569;margin-top:5px}
#page-performance .ap-stat .barwrap{margin-top:5px;height:3px;border-radius:100px;background:rgba(2,6,16,.6);overflow:hidden}
#page-performance .ap-stat .barwrap i{display:block;height:100%;border-radius:100px}
#page-performance .ap-funnel{flex:1 1 240px;min-width:205px}
#page-performance .ap-funnel .seg{height:9px;border-radius:100px;overflow:hidden;display:flex;background:rgba(2,6,16,.6);box-shadow:inset 0 0 0 1px rgba(148,163,184,.08)}
#page-performance .ap-funnel .seg i{height:100%;transition:width .4s ease}
#page-performance .ap-funnel .leg{display:flex;gap:13px;margin-top:8px;flex-wrap:wrap}
#page-performance .ap-funnel .leg span{font-size:10px;color:#8FA0BC;display:flex;align-items:center;gap:5px;white-space:nowrap}
#page-performance .ap-funnel .leg b{font-family:'JetBrains Mono',monospace;font-weight:800}
#page-performance .ap-funnel .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
#page-performance .ap-q{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:50px}
#page-performance .ap-q .ring{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center}
#page-performance .ap-q .ring .inner{width:34px;height:34px;border-radius:50%;background:#0e1626;display:flex;align-items:center;justify-content:center;font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:800}
#page-performance .ap-q .k{font-size:8px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:#475569}
#page-performance .ap-mini{display:flex;gap:11px;font-size:11px;color:#8FA0BC;flex-shrink:0;font-family:'JetBrains Mono',monospace}
