/* Leaderboard page */
.lb-header { text-align:center; padding:20px 20px 0; background:var(--bg-card); }
.podium-section { background:var(--bg-card); padding:20px 20px 40px; display:flex; justify-content:center; align-items:flex-end; gap:15px; border-bottom-left-radius:30px; border-bottom-right-radius:30px; box-shadow:0 10px 30px -10px rgba(0,0,0,0.05); margin-bottom:20px; }
.podium-item { text-align:center; position:relative; width:30%; }
.podium-1{order:2;transform:translateY(-15px)}
.podium-1 .p-img-box{width:90px;height:90px;border:4px solid #f59e0b;box-shadow:0 0 20px rgba(245,158,11,0.4)}
.podium-2{order:1}
.podium-2 .p-img-box{border:3px solid #94a3b8}
.podium-3{order:3}
.podium-3 .p-img-box{border:3px solid #b45309}
.p-img-box { width:70px; height:70px; border-radius:50%; margin:0 auto; position:relative; background:#eee; }
.p-img-box img { width:100%; height:100%; border-radius:50%; object-fit:cover; border:3px solid white; }
.crown { position:absolute; top:-25px; left:50%; transform:translateX(-50%); color:#f59e0b; font-size:1.5rem; filter:drop-shadow(0 2px 5px rgba(0,0,0,0.2)); }
.p-rank-badge { position:absolute; bottom:-8px; left:50%; transform:translateX(-50%); width:22px; height:22px; border-radius:50%; color:white; font-size:0.8rem; font-weight:bold; line-height:22px; border:2px solid white; z-index:5; text-align:center; }
.podium-1 .p-rank-badge{background:#f59e0b}
.podium-2 .p-rank-badge{background:#94a3b8}
.podium-3 .p-rank-badge{background:#b45309}
.rank-item { display:flex; align-items:center; padding:12px 15px; background:var(--bg-card); border-radius:12px; margin-bottom:10px; box-shadow:0 2px 5px rgba(0,0,0,0.02); border:1px solid var(--border); }
.r-pos { width:30px; font-weight:700; color:var(--text-muted); text-align:center; }
.r-img { width:40px; height:40px; border-radius:50%; margin:0 15px 0 10px; background:#eee; }
.r-val { font-weight:800; color:var(--text-main); font-size:1rem; }

/* Daily / Weekly / Monthly */
.lb-seg { position:relative; display:grid; grid-template-columns:repeat(3,1fr); background:var(--bg-input); border-radius:14px; padding:4px; margin:0 auto 14px; max-width:340px; }
.lb-tab { position:relative; z-index:1; border:0; background:transparent; padding:9px 4px; font-weight:800; font-size:.82rem; color:var(--text-muted); cursor:pointer; font-family:inherit; transition:color .25s; }
.lb-tab.on { color:var(--primary); }
.lb-thumb { position:absolute; top:4px; bottom:4px; left:4px; width:calc((100% - 8px)/3); background:#fff; border-radius:11px; box-shadow:0 3px 10px rgba(0,0,0,.09); transition:transform .38s cubic-bezier(.34,1.3,.64,1); }
.lb-seg[data-active="w"] .lb-thumb { transform:translateX(100%); } .lb-seg[data-active="m"] .lb-thumb { transform:translateX(200%); }
.lb-reward { margin:12px 20px 0; padding:12px 14px; border-radius:16px; background:linear-gradient(135deg,#fffbeb,#fef3c7); border:1px solid #fde68a; animation:lbSlide .45s ease both; }
.lbr-top { display:flex; align-items:center; gap:8px; color:#92400e; font-size:.85rem; } .lbr-top i { animation:giftWiggle 2.4s infinite; } .lbr-top span { margin-left:auto; font-size:.7rem; font-weight:800; background:#fde68a; padding:3px 9px; border-radius:20px; }
.lbr-row { display:flex; gap:8px; flex-wrap:wrap; margin:10px 0 6px; }
.lbr-chip { display:flex; align-items:center; gap:6px; background:#fff; border-radius:30px; padding:5px 12px; font-weight:900; font-size:.85rem; color:#78350f; animation:lbPop .45s cubic-bezier(.34,1.56,.64,1) both; }
.lb-reward small { font-size:.68rem; color:#a16207; }
.lb-empty { text-align:center; padding:34px 10px; color:var(--text-muted); display:flex; flex-direction:column; gap:6px; animation:lbSlide .4s ease both; }
.lb-empty i { font-size:2.4rem; color:#f59e0b; opacity:.6; animation:giftWiggle 2.6s infinite; } .lb-empty b { color:var(--text-main); }
.lb-skel { height:56px; border-radius:14px; margin-bottom:10px; background:linear-gradient(90deg,var(--bg-input) 25%,#fff 50%,var(--bg-input) 75%); background-size:200% 100%; animation:lbShim 1.2s linear infinite; }
@keyframes lbShim { to { background-position:-200% 0; } }
@keyframes lbSlide { from{opacity:0;transform:translateY(14px)} to{opacity:1;transform:none} }
@keyframes lbPop { from{opacity:0;transform:scale(.6)} to{opacity:1;transform:scale(1)} }
@keyframes lbRise { from{opacity:0;transform:translateY(40px) scale(.85)} to{opacity:1;transform:none} }
