/* ── shared/styles.css ───────────────────────────────────────────────────────
   Single source of truth for all colours, fonts, and components.
   Both leaderboard pages and analytics pages import this file.
────────────────────────────────────────────────────────────────────────────── */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden}
body{font-family:Poppins,sans-serif;background:#F7F0F5}
.app{display:flex;flex-direction:column;height:100vh}

/* ═══ NAVBAR ═══════════════════════════════════════════════════════════════ */
.navbar{
  flex-shrink:0;height:82px;background:#353148;
  display:flex;align-items:center;padding:0 28px;
  border-bottom:2px solid rgba(238,77,135,.22);
  box-shadow:0 4px 28px rgba(0,0,0,.30),0 2px 0 rgba(238,77,135,.18);
  position:relative;z-index:100;gap:0;
}
.nb-left{display:flex;align-items:center;gap:13px;flex-shrink:0}
.nb-logo{width:108px;height:auto;flex-shrink:0;filter:brightness(0) invert(1)}
.nb-divider{width:1.5px;height:26px;background:rgba(255,255,255,.20);flex-shrink:0}
.nb-title{font-size:13px;font-weight:700;color:#FEFBF7;letter-spacing:.1px;line-height:1.25;white-space:nowrap}
.nb-center{flex:1;display:flex;justify-content:center;align-items:center;gap:4px}
.nb-right{display:flex;align-items:center;gap:9px;flex-shrink:0}

/* Nav pills (cycle selector + analytics section pills) */
.np{
  padding:9px 22px;border-radius:99px;border:1px solid transparent;
  background:transparent;cursor:pointer;font-family:Poppins,sans-serif;
  font-size:14px;font-weight:500;color:rgba(254,251,247,.72);
  transition:all .18s ease;white-space:nowrap;text-decoration:none;display:inline-block;
}
.np:hover{color:#EE4D87;background:rgba(238,77,135,.12)}
.np.on{background:#EE4D87;color:#FFFFFF;font-weight:700;border-color:#EE4D87;
       box-shadow:0 2px 14px rgba(238,77,135,.45)}

/* View toggle pill (Leaderboard | Winners | Analytics) */
.view-toggle{
  display:flex;align-items:center;
  background:rgba(255,255,255,.07);
  border:1.5px solid rgba(255,255,255,.15);
  border-radius:99px;padding:3px;gap:2px;
}
.vt-btn{
  display:flex;align-items:center;gap:5px;
  padding:5px 13px;border-radius:99px;border:none;
  background:transparent;cursor:pointer;
  font-family:Poppins,sans-serif;font-size:11px;font-weight:600;
  color:rgba(254,251,247,.60);transition:all .18s ease;white-space:nowrap;
  text-decoration:none;
}
.vt-btn i{font-size:13px;}
.vt-btn.on{background:#EE4D87;color:#fff;font-weight:700;box-shadow:0 2px 10px rgba(238,77,135,.35);}
.vt-btn.on i{color:#fff;}

/* ─── Performance Hub dropdown (analytics pages right side) ─────────────── */
.ph-wrap{position:relative;height:82px;display:flex;align-items:center;}
.ph-btn{
  display:flex;align-items:center;gap:7px;
  padding:8px 16px;border-radius:99px;border:1.5px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.07);cursor:pointer;
  font-family:Poppins,sans-serif;font-size:12px;font-weight:600;
  color:rgba(254,251,247,.80);transition:all .18s ease;white-space:nowrap;
}
.ph-btn:hover,.ph-wrap:hover .ph-btn{color:#EE4D87;border-color:rgba(238,77,135,.45);background:rgba(238,77,135,.10);}
.ph-btn i{font-size:12px;transition:transform .18s;}
.ph-wrap:hover .ph-btn i.chevron{transform:rotate(180deg);}
.ph-dd{
  position:absolute;top:calc(100% - 14px);right:0;
  background:#2a2540;border:1px solid rgba(255,255,255,.12);
  border-radius:12px;padding:6px;min-width:180px;
  opacity:0;pointer-events:none;transform:translateY(-6px);
  transition:opacity .18s,transform .18s;z-index:200;
}
.ph-wrap:hover .ph-dd{opacity:1;pointer-events:all;transform:translateY(0);}
.ph-dd-label{font-size:8.5px;font-weight:700;letter-spacing:1.5px;
  color:rgba(254,251,247,.35);text-transform:uppercase;padding:6px 10px 4px;}
.ph-dd a{
  display:flex;align-items:center;gap:9px;padding:9px 11px;
  font-size:12px;font-weight:500;color:rgba(254,251,247,.80);
  text-decoration:none;border-radius:8px;transition:background .12s;
}
.ph-dd a:hover{background:rgba(238,77,135,.15);color:#EE4D87;}
.ph-dd a i{font-size:14px;color:rgba(238,77,135,.70);}
.ph-dd-sep{height:1px;background:rgba(255,255,255,.08);margin:4px 6px;}

/* ═══ LEADERBOARD VIEW ══════════════════════════════════════════════════════ */
.body-wrap{flex:1;display:flex;overflow:hidden}
.view{flex:1;display:flex;overflow:hidden;min-height:0}
.view.hide{display:none}

.lb-main{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#FFFFFF;}
.lb-header{
  flex-shrink:0;padding:16px 22px 12px;border-bottom:1px solid #F2D4E6;
  background:#FFFFFF;display:flex;align-items:center;gap:14px;
}
.lb-title-row{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;}
.lb-title{font-size:17px;font-weight:800;color:#15050F;letter-spacing:-.3px;}
.period-badge{font-size:11.5px;font-weight:700;color:#731840;opacity:.76;}
.lb-sub{font-size:12px;color:#5a3a52;font-weight:500;margin-top:3px;}
.lb-scroll{flex:1;overflow-y:auto;padding:10px 16px 8px;}
.lb-table{width:100%;border-collapse:separate;border-spacing:0 8px;}
.lb-table thead th{
  font-size:9px;font-weight:700;color:#7a4a6a;letter-spacing:1.3px;
  text-transform:uppercase;padding:0 14px 7px;text-align:left;white-space:nowrap;
}
.lb-table thead .th-rank{text-align:center;padding-left:8px;width:50px;}
.lb-table thead .th-ach{min-width:200px;}
.lb-row{
  background:#FFFFFF;
  box-shadow:0 1px 8px rgba(115,24,64,.07),0 1px 0 rgba(115,24,64,.04);
  transition:transform .14s,box-shadow .14s;cursor:pointer;
}
.lb-row:hover{transform:translateX(4px);box-shadow:0 4px 20px rgba(115,24,64,.13);}
.lb-row-top{
  background:linear-gradient(to right,rgba(238,77,135,.06) 0%,#FFFFFF 36%);
  box-shadow:0 2px 16px rgba(238,77,135,.13),0 1px 0 rgba(238,77,135,.07);
}
.lb-row td{padding:19px 14px;vertical-align:middle;}
.lb-row td:first-child{border-radius:7px 0 0 7px;padding-left:10px;text-align:center;}
.lb-row td:last-child{border-radius:0 7px 7px 0;padding-right:18px;}
.rank-badge{width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;flex-shrink:0;}
.bdo-cell{display:flex;align-items:center;gap:13px;}
.bdo-av{width:62px;height:62px;border-radius:50%;overflow:hidden;flex-shrink:0;position:relative;border:2.5px solid #F0DAE8;display:flex;align-items:center;justify-content:center;}
.bdo-init{font-size:18px;font-weight:800;color:#fff;position:relative;z-index:1;pointer-events:none;}
.bdo-name{font-size:14px;font-weight:700;color:#15050F;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:165px;}
.bdo-loc-row{font-size:11px;color:#7a5a70;margin-top:2px;font-weight:500;}
.loc-txt{font-size:12px;color:#5a4a62;font-weight:500;white-space:nowrap;}
.metric-val{font-size:16px;font-weight:800;color:#731840;line-height:1;}
.metric-lbl{font-size:8px;color:#7a5a70;letter-spacing:1px;text-transform:uppercase;margin-top:2px;font-weight:600;}
.ach-row{display:flex;align-items:center;gap:10px;}
.ach-val-txt{font-size:12.5px;font-weight:700;color:#731840;flex-shrink:0;min-width:42px;text-align:right;}
.ach-bar-wrap{flex:1;height:6px;background:#F0E0EA;border-radius:99px;overflow:hidden;min-width:80px;}
.ach-bar{height:100%;border-radius:99px;}
.lb-empty{padding:48px 20px;text-align:center;color:#b09aaa;font-size:13px;line-height:2;}
.prize-badge{display:inline-flex;align-items:center;gap:6px;background:#F9F0F6;border:1.5px solid #F2D4E6;border-radius:99px;padding:6px 14px;font-size:11.5px;font-weight:700;color:#731840;white-space:nowrap;flex-shrink:0;margin-left:auto;align-self:center;}
.prize-badge i{font-size:14px;color:#EE4D87;}
.lb-row.lb-selected{background:linear-gradient(to right,rgba(238,77,135,.11) 0%,rgba(238,77,135,.03) 100%);box-shadow:0 0 0 2px rgba(238,77,135,.38),0 3px 18px rgba(238,77,135,.18);transform:translateX(4px);}
.lb-row.lb-selected .bdo-name{color:#EE4D87;}

/* ═══ BDO SIDEBAR (leaderboard page) ════════════════════════════════════════ */
.bdo-sidebar{width:268px;flex-shrink:0;background:#353148;display:flex;flex-direction:column;overflow-y:auto;position:relative;border-right:1px solid rgba(255,255,255,.06);}
.bdo-sidebar::before{content:'';position:absolute;width:200px;height:200px;border-radius:50%;background:rgba(238,77,135,.06);top:-50px;right:-50px;pointer-events:none;z-index:0;}
.bds-inner{display:flex;flex-direction:column;align-items:center;padding:20px 14px 16px;position:relative;z-index:1;flex:1;}
.bds-lbl-hdr{font-size:7.5px;font-weight:700;letter-spacing:2.5px;color:#FEF6EC;text-transform:uppercase;margin-bottom:14px;text-align:center;display:flex;align-items:center;gap:5px;}
.bds-av{width:104px;height:104px;border-radius:50%;border:3px solid #EE4D87;box-shadow:0 0 0 5px rgba(238,77,135,.15),0 0 24px rgba(238,77,135,.28);overflow:hidden;position:relative;background:linear-gradient(135deg,#c23060,#EE4D87);display:flex;align-items:center;justify-content:center;margin-bottom:12px;flex-shrink:0;}
.bds-av-init{font-size:26px;font-weight:800;color:#FEFBF7;position:relative;z-index:1;}
.bds-name{font-size:14px;font-weight:800;color:#FEFBF7;letter-spacing:-.2px;line-height:1.2;text-align:center;margin-bottom:3px;word-break:break-word;}
.bds-loc{font-size:11px;color:#EE4D87;font-weight:600;text-align:center;margin-bottom:10px;}
.bds-metric-block{text-align:center;margin-bottom:10px;}
.bds-metric-val{font-size:28px;font-weight:900;color:#FEF6EC;line-height:1;margin-bottom:2px;}
.bds-metric-lbl{font-size:8px;color:rgba(254,251,247,.50);letter-spacing:1.5px;text-transform:uppercase;font-weight:600;}
.bds-divider{width:100%;height:1px;background:rgba(255,255,255,.09);margin:4px 0 14px;}
.bds-cards-wrap{width:100%;display:flex;flex-direction:column;gap:10px;}
.bds-card{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.11);border-radius:11px;padding:13px 14px;display:flex;align-items:center;gap:12px;}
.bds-icon{width:38px;height:38px;border-radius:50%;background:#FEF6EC;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.bds-icon i{font-size:16px;color:#EE4D87;}
.bds-card-lbl{font-size:8.5px;color:rgba(254,251,247,.55);letter-spacing:1px;text-transform:uppercase;font-weight:700;margin-bottom:3px;}
.bds-card-val{font-size:17px;font-weight:900;color:#FEFBF7;line-height:1;margin-bottom:3px;}
.bds-card-trend{font-size:9.5px;font-weight:600;color:rgba(254,251,247,.45);}
.bds-card-trend.up{color:#4ade80;}.bds-card-trend.down{color:#f87171;}
.bds-hint{margin-top:auto;padding-top:12px;font-size:8.5px;color:rgba(254,251,247,.25);text-align:center;font-weight:500;line-height:1.5;}

/* ═══ PAST WINNERS (leaderboard bottom strip) ═══════════════════════════════ */
.past-section{flex-shrink:0;padding:11px 18px 14px;background:#FDF5FA;border-top:1px solid #F2D4E6;}
.past-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:9px;}
.past-title{font-size:12.5px;font-weight:800;color:#15050F;letter-spacing:-.15px;}
.past-sub{font-size:8.5px;color:#EE4D87;font-weight:600;letter-spacing:.5px;}
.pgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;}
.pcard{background:#fff;border-radius:11px;padding:11px 7px 10px;text-align:center;border:1px solid #F6E6EF;box-shadow:0 1px 6px rgba(88,19,52,.04);transition:transform .14s,box-shadow .14s;cursor:default;}
.pcard:hover{transform:translateY(-2px);box-shadow:0 5px 16px rgba(88,19,52,.10);}
.pav{width:42px;height:42px;margin:0 auto 7px;border-radius:50%;overflow:hidden;border:2px solid #FAEDF4;position:relative;display:flex;align-items:center;justify-content:center;}
.p-init{font-size:12px;font-weight:800;color:#fff;}
.pn{font-size:9.5px;font-weight:700;color:#15050F;line-height:1.2;margin-bottom:2px;}
.pp{font-size:7.5px;color:#EE4D87;font-weight:600;margin-bottom:4px;}
.pc{display:inline-block;background:#fff;border:1.5px solid #F5CEE3;border-radius:99px;padding:2px 8px;font-size:9.5px;font-weight:800;color:#731840;}

/* ═══ WINNER VIEW ═══════════════════════════════════════════════════════════ */
.winner-full{flex:1;display:flex;flex-direction:row;overflow:hidden;background:#353148;position:relative;}
.wf-main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow-y:auto;padding:28px 20px;position:relative;}
.wf-main::before{content:'';position:absolute;width:360px;height:360px;border-radius:50%;background:rgba(238,77,135,.06);top:-80px;right:-60px;pointer-events:none;}
.wf-main::after{content:'';position:absolute;width:220px;height:220px;border-radius:50%;background:rgba(238,77,135,.04);bottom:-50px;left:-40px;pointer-events:none;}
.wf-card{display:flex;flex-direction:column;align-items:center;max-width:420px;width:100%;position:relative;z-index:1;}
.gold-crown{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#FFD84D 0%,#F5A800 100%);display:flex;align-items:center;justify-content:center;font-size:23px;color:#7A5200;box-shadow:0 0 0 6px rgba(245,200,66,.20),0 0 32px rgba(245,200,66,.55);animation:crownPulse 3s ease-in-out infinite;margin-bottom:12px;}
@keyframes crownPulse{0%,100%{box-shadow:0 0 0 6px rgba(245,200,66,.20),0 0 32px rgba(245,200,66,.55);}50%{box-shadow:0 0 0 10px rgba(245,200,66,.30),0 0 52px rgba(245,200,66,.75);}}
.wf-badge{display:inline-flex;align-items:center;gap:6px;background:rgba(238,77,135,.22);border:1.5px solid rgba(238,77,135,.50);border-radius:99px;padding:5px 16px;font-size:9px;font-weight:800;letter-spacing:2px;color:#EE4D87;text-transform:uppercase;margin-bottom:12px;}
.wf-av{width:148px;height:148px;border-radius:50%;border:4px solid #EE4D87;box-shadow:0 0 0 8px rgba(238,77,135,.14),0 0 40px rgba(238,77,135,.28),0 0 70px rgba(238,77,135,.10);overflow:hidden;position:relative;background:linear-gradient(135deg,#c23060,#EE4D87);display:flex;align-items:center;justify-content:center;margin-bottom:14px;flex-shrink:0;}
.wf-av-init{font-size:38px;font-weight:800;color:#FEFBF7;position:relative;z-index:1;}
.wf-rank-lbl{font-size:9px;font-weight:700;letter-spacing:2.5px;color:#EE4D87;text-transform:uppercase;margin-bottom:5px;text-align:center;}
.wf-name{font-size:26px;font-weight:900;color:#FEFBF7;letter-spacing:-.4px;line-height:1.1;text-align:center;margin-bottom:4px;width:100%;}
.wf-loc{font-size:13px;color:#EE4D87;font-weight:700;text-align:center;margin-bottom:10px;}
.wf-won-period{display:inline-flex;align-items:center;gap:7px;background:rgba(238,77,135,.12);border:1px solid rgba(238,77,135,.30);border-radius:99px;padding:5px 16px;font-size:11.5px;font-weight:600;color:rgba(254,251,247,.94);text-align:center;margin-bottom:10px;}
.wf-won-period strong{color:#EE4D87;font-weight:800;}
.wf-divider{width:100%;height:1px;background:rgba(255,255,255,.12);margin:8px 0;}
.wf-stat-val{font-size:46px;font-weight:900;color:#EE4D87;line-height:1;margin-bottom:4px;text-align:center;}
.wf-stat-lbl{font-size:10px;color:rgba(254,251,247,.88);letter-spacing:2.5px;text-transform:uppercase;text-align:center;font-weight:600;}
.wf-prize{display:inline-flex;align-items:center;gap:8px;background:rgba(245,200,66,.16);border:1.5px solid rgba(245,200,66,.40);border-radius:99px;padding:11px 22px;font-size:13px;font-weight:800;color:#FFE566;margin-top:12px;}
.wf-prize i{font-size:14px;color:#F5C842;}
.nw-card{display:flex;flex-direction:column;align-items:center;max-width:400px;width:100%;position:relative;z-index:1;}
.nw-icon-wrap{width:90px;height:90px;border-radius:50%;background:rgba(255,255,255,.07);border:1.5px solid rgba(255,255,255,.13);display:flex;align-items:center;justify-content:center;font-size:38px;color:rgba(254,251,247,.40);margin-bottom:22px;}
.nw-period-lbl{font-size:9px;font-weight:700;letter-spacing:2.5px;color:rgba(238,77,135,.70);text-transform:uppercase;margin-bottom:12px;text-align:center;}
.nw-title{font-size:26px;font-weight:900;color:#FEFBF7;text-align:center;line-height:1.2;margin-bottom:14px;}
.nw-msg{font-size:14px;color:rgba(254,251,247,.88);text-align:center;line-height:1.7;margin-bottom:22px;font-weight:500;}
.nw-msg strong{color:#EE4D87;font-weight:800;}
.nw-req{display:inline-flex;align-items:center;gap:8px;background:rgba(238,77,135,.15);border:1.5px solid rgba(238,77,135,.45);border-radius:99px;padding:9px 20px;font-size:12px;font-weight:700;color:#F096BE;}
.nw-req i{font-size:14px;color:#EE4D87;}
.wf-past-sidebar{width:216px;flex-shrink:0;background:rgba(0,0,0,.15);border-left:1px solid rgba(255,255,255,.07);display:flex;flex-direction:column;overflow-y:auto;padding:22px 13px;}
.wf-past-hdr{display:flex;flex-direction:column;gap:2px;margin-bottom:14px;}
.wf-past-sidebar .past-title{font-size:11.5px;font-weight:800;color:rgba(254,251,247,.82);}
.wf-past-sidebar .past-sub{font-size:8px;color:rgba(238,77,135,.75);font-weight:600;letter-spacing:.5px;}
.wf-past-sidebar .pgrid{display:flex;flex-direction:column;gap:8px;}
.wf-past-sidebar .pcard{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.10);border-radius:10px;padding:10px 11px;display:flex;align-items:center;gap:10px;text-align:left;box-shadow:none;transition:background .14s;}
.wf-past-sidebar .pcard:hover{background:rgba(255,255,255,.12);transform:none;}
.wf-past-sidebar .pav{width:36px;height:36px;margin:0;flex-shrink:0;border:1.5px solid rgba(238,77,135,.30);}
.wf-past-sidebar .pcard-info{flex:1;min-width:0;}
.wf-past-sidebar .pn{color:rgba(254,251,247,.85);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;}
.wf-past-sidebar .pp{color:#EE4D87;font-size:8px;font-weight:600;margin:2px 0 3px;}
.wf-past-sidebar .pc{background:transparent;border:none;padding:0;display:inline;font-size:9px;font-weight:800;color:rgba(254,251,247,.55);}

/* ═══ ANALYTICS PAGES ═══════════════════════════════════════════════════════ */
.an-body{flex:1;overflow-y:auto;padding:24px 28px;background:#F7F0F5;}
.an-section-title{font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:#7a4a6a;margin:0 0 14px;}
.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:22px;}
.kpi-card{background:#fff;border-radius:12px;padding:16px 18px;border:1px solid #F2D4E6;box-shadow:0 1px 8px rgba(115,24,64,.05);}
.kpi-label{font-size:9.5px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:#7a4a6a;margin-bottom:6px;}
.kpi-value{font-size:26px;font-weight:900;color:#15050F;line-height:1;margin-bottom:4px;}
.kpi-trend{font-size:10.5px;font-weight:600;}
.kpi-trend.up{color:#16a34a;}.kpi-trend.dn{color:#dc2626;}.kpi-trend.neu{color:#7a4a6a;}
.an-row{display:grid;gap:14px;margin-bottom:22px;}
.an-row.cols-2{grid-template-columns:1fr 1fr;}
.an-row.cols-3{grid-template-columns:1fr 1fr 1fr;}
.an-card{background:#fff;border-radius:12px;padding:18px 20px;border:1px solid #F2D4E6;box-shadow:0 1px 8px rgba(115,24,64,.05);}
.an-card-title{font-size:12px;font-weight:800;color:#15050F;letter-spacing:-.1px;margin-bottom:14px;display:flex;align-items:center;gap:7px;}
.an-card-title i{color:#EE4D87;font-size:14px;}
.an-table{width:100%;border-collapse:collapse;font-size:11.5px;}
.an-table th{padding:7px 10px;text-align:left;font-size:8.5px;font-weight:700;color:#7a4a6a;letter-spacing:1px;text-transform:uppercase;border-bottom:1px solid #F2D4E6;white-space:nowrap;}
.an-table td{padding:10px 10px;border-bottom:1px solid #FDF5FA;color:#15050F;vertical-align:middle;}
.an-table tbody tr:last-child td{border-bottom:none;}
.an-table tbody tr:hover td{background:#FDF5FA;}
.rk-badge{display:inline-flex;width:24px;height:24px;border-radius:50%;align-items:center;justify-content:center;font-size:10px;font-weight:800;}
.rk-1{background:linear-gradient(135deg,#EE4D87,#B9276C);color:#fff;}
.rk-2{background:linear-gradient(135deg,#D0D0D0,#AEAEAE);color:#555;}
.rk-3{background:linear-gradient(135deg,#DEB887,#C87941);color:#fff;}
.rk-n{background:#F2E8F2;color:#8a617c;}
.pct-bar-wrap{width:80px;height:5px;background:#F0E0EA;border-radius:99px;overflow:hidden;display:inline-block;vertical-align:middle;margin-left:6px;}
.pct-bar{height:100%;border-radius:99px;}
.up-tag{color:#16a34a;font-size:10px;font-weight:700;}
.dn-tag{color:#dc2626;font-size:10px;font-weight:700;}
.neu-tag{color:#7a4a6a;font-size:10px;font-weight:700;}
.status-pill{display:inline-block;padding:2px 9px;border-radius:99px;font-size:9.5px;font-weight:700;}
.sp-green{background:#dcfce7;color:#166534;}
.sp-amber{background:#fef9c3;color:#854d0e;}
.sp-red{background:#fee2e2;color:#991b1b;}
.sp-pink{background:#FCE7F3;color:#731840;}
.bdo-mini-av{width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#fff;flex-shrink:0;position:relative;overflow:hidden;border:2px solid #F0DAE8;}
.loc-bar-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.loc-name{font-size:11.5px;font-weight:600;color:#15050F;width:60px;flex-shrink:0;}
.loc-bar-bg{flex:1;height:8px;background:#F0E0EA;border-radius:99px;overflow:hidden;}
.loc-bar-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,#731840,#EE4D87);}
.loc-val{font-size:11px;font-weight:700;color:#731840;width:48px;text-align:right;flex-shrink:0;}
.funnel-stage{margin-bottom:9px;}
.fs-label{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#5a3a52;font-weight:500;margin-bottom:3px;}
.fs-count{font-weight:800;color:#15050F;}
.fs-bar-bg{height:24px;background:#F7F0F5;border-radius:6px;overflow:hidden;position:relative;}
.fs-bar-fill{height:24px;border-radius:6px;position:absolute;top:0;left:0;display:flex;align-items:center;padding-left:10px;font-size:10px;font-weight:700;color:#fff;}
.empty-state{text-align:center;padding:32px 20px;color:#b09aaa;font-size:12px;line-height:2;}
.empty-state i{font-size:24px;display:block;margin-bottom:8px;opacity:.4;}

/* ═══ SCROLLBAR ════════════════════════════════════════════════════════════ */
::-webkit-scrollbar{width:4px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#F6D5E7;border-radius:99px}

/* ═══ RESPONSIVE ═══════════════════════════════════════════════════════════ */
@media(max-width:900px){.bdo-name{max-width:120px}}
@media(max-width:768px){
  html,body{overflow:auto}
  .app{height:auto;min-height:100vh}
  .navbar{height:auto;padding:10px 14px;flex-wrap:wrap;gap:7px}
  .nb-left{gap:7px}
  .nb-logo{width:70px}
  .nb-title{font-size:10px}
  .nb-divider{height:17px}
  .nb-center{order:3;width:100%;justify-content:flex-start;overflow-x:auto;padding-bottom:3px;scrollbar-width:none}
  .nb-center::-webkit-scrollbar{display:none}
  .np{padding:5px 12px;font-size:11px}
  .nb-right{gap:7px}
  .vt-btn{padding:4px 10px;font-size:10px}
  .body-wrap{flex-direction:column;height:auto}
  .view{flex-direction:column;height:auto;overflow:visible}
  .lb-main{width:100%}
  .lb-scroll{overflow-y:visible;height:auto}
  .pgrid{grid-template-columns:repeat(3,1fr)}
  .lb-table .td-loc{display:none}
  .lb-table .th-loc{display:none}
  .lb-table thead .th-ach{min-width:unset}
  .ach-bar-wrap{min-width:50px}
  .bdo-name{max-width:140px}
  .bdo-av{width:42px;height:42px}
  .bdo-init{font-size:12px}
  .winner-full{min-height:80vh}
  .wf-main{padding:24px 16px}
  .wf-av{width:140px;height:140px}
  .wf-av-init{font-size:36px}
  .wf-name{font-size:22px}
  .wf-stat-val{font-size:40px}
  .gold-crown{width:50px;height:50px;font-size:22px}
  .nw-title{font-size:22px}
  .bdo-sidebar{display:none}
  .prize-badge{display:none}
  .winner-full{flex-direction:column}
  .wf-past-sidebar{width:100%;border-left:none;border-top:1px solid rgba(255,255,255,.07);padding:14px}
  .wf-past-sidebar .pgrid{flex-direction:row;flex-wrap:wrap;gap:7px}
  .wf-past-sidebar .pcard{width:calc(50% - 4px)}
  .kpi-row{grid-template-columns:repeat(2,1fr)}
  .an-row.cols-2,.an-row.cols-3{grid-template-columns:1fr}
  .ph-dd{display:none} /* simplify on mobile */
}
@media(max-width:480px){
  .pgrid{grid-template-columns:repeat(2,1fr)}
  .bdo-name{max-width:110px}
  .ach-val-txt{display:none}
  .vt-btn .vt-label{display:none}
  .vt-btn{padding:6px 10px}
  .metric-val{font-size:14px}
  .metric-lbl{font-size:7px}
  .kpi-row{grid-template-columns:1fr}
}

/* ── Analytics nav sub-dropdown ─────────────────────────────────────────── */
.an-hover-wrap{position:relative;display:inline-flex;align-items:center;}
.an-hover-wrap .an-sub-dd{
  position:absolute;top:calc(100% + 4px);left:50%;transform:translateX(-50%);
  background:#fff;border:1px solid #F2D4E6;border-radius:12px;padding:6px;
  min-width:180px;
  box-shadow:0 10px 32px rgba(115,24,64,.14),0 2px 8px rgba(0,0,0,.05);
  z-index:300;opacity:0;transform:translateX(-50%) translateY(-6px) scale(.97);
  pointer-events:none;transition:opacity .18s,transform .2s;
}
.an-hover-wrap:hover .an-sub-dd{
  opacity:1;transform:translateX(-50%) translateY(0) scale(1);pointer-events:all;
}
.an-hover-wrap::after{
  content:'';position:absolute;top:100%;left:0;
  width:100%;height:12px;background:transparent;
}
.an-dd-item{
  display:flex;align-items:center;gap:9px;padding:9px 12px;border-radius:8px;
  font-size:12px;font-weight:600;color:#5a3a52;text-decoration:none;
  transition:background .12s;white-space:nowrap;
}
.an-dd-item:hover{background:#FDF5FA;color:#EE4D87;}
.an-dd-item.active{background:#F9F0F6;color:#731840;font-weight:700;}
.an-dd-item i{font-size:14px;color:#c49ab8;}
.an-dd-item.active i{color:#731840;}
.an-dd-item:hover i{color:#EE4D87;}
/* back pill — muted ghost style */
.an-back-btn{opacity:.7;font-size:11px!important;}
.an-back-btn:hover{opacity:1;color:#FEFBF7!important;background:rgba(255,255,255,.12)!important;}

/* ── Leaderboard hover nav pills ─────────────────────────────────────────── */
.lhp-wrap{position:relative;display:inline-flex;align-items:center;}
.lhp-btn{
  display:flex;align-items:center;gap:7px;
  padding:7px 14px;border-radius:99px;border:none;cursor:pointer;
  font-family:Poppins,sans-serif;font-size:12px;font-weight:600;
  background:rgba(255,255,255,.10);color:#FEFBF7;
  transition:all .18s;white-space:nowrap;
}
.lhp-btn:hover,.lhp-wrap:hover .lhp-btn{
  background:rgba(238,77,135,.20);color:#FEFBF7;
}
.lhp-btn.active,.lhp-wrap.active .lhp-btn{
  background:#EE4D87;color:#fff;
}
.lhp-chev{font-size:10px;opacity:.6;transition:transform .2s;}
.lhp-wrap:hover .lhp-chev{transform:rotate(180deg);}
.lhp-dd{
  position:absolute;top:calc(100% + 4px);right:0;
  background:#fff;border:1px solid #F2D4E6;border-radius:12px;padding:6px;
  min-width:190px;
  box-shadow:0 10px 32px rgba(115,24,64,.14),0 2px 8px rgba(0,0,0,.05);
  z-index:300;opacity:0;transform:translateY(-6px) scale(.97);
  pointer-events:none;transition:opacity .18s,transform .2s;
}
.lhp-wrap:hover .lhp-dd{
  opacity:1;transform:translateY(0) scale(1);pointer-events:all;
}
/* Invisible bridge fills the gap so mouse doesn't lose hover */
.lhp-wrap::after{
  content:'';position:absolute;top:100%;left:0;
  width:100%;height:12px;background:transparent;
}
.lhp-dd-label{
  font-size:8.5px;font-weight:700;letter-spacing:1.3px;text-transform:uppercase;
  color:#b09aaa;padding:5px 10px 3px;
}
.lhp-dd-item{
  display:flex;align-items:center;gap:9px;padding:9px 12px;border-radius:8px;
  font-size:12px;font-weight:600;color:#5a3a52;text-decoration:none;
  transition:background .12s;cursor:pointer;white-space:nowrap;
}
.lhp-dd-item:hover{background:#FDF5FA;color:#EE4D87;}
.lhp-dd-item i{font-size:14px;color:#c49ab8;}
.lhp-dd-item:hover i{color:#EE4D87;}
.lhp-sep{height:1px;background:#F2D4E6;margin:4px 8px;}