
/*==================================================
DESIGN SYSTEM
==================================================*/

:root{

--primary:#2563eb;
--primary-dark:#1d4ed8;

--success:#16a34a;
--warning:#f59e0b;
--danger:#dc2626;

--text:#0f172a;
--text-light:#64748b;

--bg:#f5f7fb;
--card:#ffffff;

--border:#e2e8f0;

--radius:18px;
--radius-lg:22px;

--shadow-sm:0 4px 14px rgba(15,23,42,.05);
--shadow:0 12px 32px rgba(15,23,42,.08);

--transition:.25s ease;

}

/*==================================================
BODY
==================================================*/

body{

background:#f5f7fb !important;

font-family:'Inter',sans-serif;

color:var(--text);

}

/*==================================================
LAYOUT
==================================================*/

.leaderboard-page{

padding:34px 0 55px;

}

.leaderboard-page .container{

max-width:1180px;

}

/*==================================================
HERO
==================================================*/

.lb-hero{

display:flex;

justify-content:space-between;

align-items:center;

gap:22px;

margin-bottom:24px;

padding:22px 26px;

background:#fff;

border:1px solid var(--border);

border-radius:20px;

box-shadow:var(--shadow-sm);

}

.lb-hero__content{

display:flex;

align-items:center;

gap:18px;

}

.lb-hero__icon{

width:64px;

height:64px;

display:flex;

align-items:center;

justify-content:center;

background:rgba(37,99,235,.10);

border-radius:16px;

font-size:1.8rem;

flex-shrink:0;

}

.lb-hero__title{

margin:0;

font-family:'Sora',sans-serif;

font-size:1.7rem;

font-weight:700;

color:var(--text);

}

.lb-hero__subtitle{

margin:6px 0 0;

max-width:700px;

font-size:.93rem;

line-height:1.65;

color:var(--text-light);

}

/*==================================================
STATS
==================================================*/

.lb-stat-card{

display:flex;

align-items:center;

gap:16px;

padding:18px;

height:100%;

background:#fff;

border:1px solid var(--border);

border-radius:18px;

box-shadow:var(--shadow-sm);

transition:var(--transition);

}

.lb-stat-card:hover{

transform:translateY(-3px);

box-shadow:var(--shadow);

}

.lb-stat-card__icon{

width:54px;

height:54px;

display:flex;

align-items:center;

justify-content:center;

background:rgba(37,99,235,.10);

border-radius:15px;

font-size:1.45rem;

flex-shrink:0;

}

.lb-stat-card__label{

margin-bottom:4px;

font-size:.80rem;

font-weight:600;

text-transform:uppercase;

letter-spacing:.04em;

color:var(--text-light);

}

.lb-stat-card__value{

font-size:1.1rem;

font-weight:800;

font-family:'Sora',sans-serif;

line-height:1;

color:var(--text);

}


/*==================================================
LEADERBOARD CARDS
==================================================*/

.lb-card{

display:grid;

grid-template-columns:90px 80px 1fr 170px;

align-items:center;

gap:22px;

margin-bottom:18px;

padding:18px 22px;

background:#fff;

border:1px solid var(--border);

border-radius:20px;

box-shadow:var(--shadow-sm);

transition:var(--transition);

}

.lb-card:hover{

transform:translateY(-3px);

box-shadow:var(--shadow);

}

/*==================================================
RANK
==================================================*/

.lb-card__rank{

display:flex;

align-items:center;

justify-content:center;

font-size:1.8rem;

font-weight:800;

font-family:'Sora',sans-serif;

color:var(--primary);

}

/*==================================================
AVATAR
==================================================*/

.lb-card__avatar{

width:68px;

height:68px;

overflow:hidden;

border-radius:50%;

flex-shrink:0;

margin:auto;

box-shadow:0 8px 20px rgba(15,23,42,.12);

}

.lb-card__avatar a{

display:block;

width:100%;

height:100%;

}

.lb-card:hover .lb-card__avatar img{

transform:scale(1.05);

}

/*==================================================
CONTENT
==================================================*/

.lb-card__content{

display:flex;

flex-direction:column;

gap:14px;

min-width:0;

}

/*==================================================
HEADER
==================================================*/

.lb-card__top{

display:flex;

align-items:center;

justify-content:space-between;

gap:14px;

flex-wrap:wrap;

}

/*==================================================
USERNAME
==================================================*/

.lb-card__name{

margin:0;

font-size:1.15rem;

font-weight:700;

font-family:'Sora',sans-serif;

}

.lb-card__name a{

display:inline-flex;

align-items:center;

gap:10px;

text-decoration:none;

color:var(--text);

transition:var(--transition);

}

.lb-card__name a:hover{

color:var(--primary);

}

/*==================================================
FLAG
==================================================*/

.lb-flag{

width:24px;

height:18px;

border-radius:4px;

object-fit:cover;

box-shadow:0 2px 6px rgba(0,0,0,.10);

}

/*==================================================
LEVEL BADGE
==================================================*/

.lb-level{

display:inline-flex;

align-items:center;

gap:6px;

padding:7px 14px;

background:rgba(37,99,235,.10);

color:var(--primary);

font-size:.78rem;

font-weight:700;

border-radius:999px;

white-space:nowrap;

}

/*==================================================
MEMBER STATS
==================================================*/

.lb-stats{

display:flex;

flex-wrap:wrap;

gap:18px;

}

.lb-stat{

display:flex;

flex-direction:column;

gap:3px;

min-width:110px;

}

.lb-stat strong{

font-size:1rem;

font-weight:800;

color:var(--text);

font-family:'Sora',sans-serif;

}

.lb-stat span{

font-size:.76rem;

text-transform:uppercase;

letter-spacing:.04em;

color:var(--text-light);

}

/*==================================================
ACTION
==================================================*/

.lb-card__action{

display:flex;

justify-content:flex-end;

align-items:center;

}

/*==================================================
SEARCH TOOLBAR
==================================================*/

.lb-toolbar{

margin-bottom:24px;

padding:20px 22px;

background:#fff;

border:1px solid var(--border);

border-radius:20px;

box-shadow:var(--shadow-sm);

}

.lb-search{

position:relative;

}

.lb-search i{

position:absolute;

left:18px;

top:50%;

transform:translateY(-50%);

font-size:1rem;

color:var(--text-light);

pointer-events:none;

}

.lb-search .form-control{

height:56px;

padding-left:48px;

border:1px solid var(--border);

border-radius:16px;

font-size:.92rem;

background:#fff;

box-shadow:none;

transition:var(--transition);

}

.lb-search .form-control:focus{

border-color:rgba(37,99,235,.45);

box-shadow:0 0 0 4px rgba(37,99,235,.10);

}

.lb-sort{

height:56px;

border-radius:16px;

border:1px solid var(--border);

font-size:.9rem;

box-shadow:none;

}

.lb-sort:focus{

border-color:rgba(37,99,235,.45);

box-shadow:0 0 0 4px rgba(37,99,235,.10);

}

/*==================================================
BUTTONS
==================================================*/

.lb-search-btn,

.lb-reset-btn,

.lb-profile-btn{

display:inline-flex;

align-items:center;

justify-content:center;

gap:8px;

height:56px;

padding:0 22px;

border:none;

border-radius:16px;

font-size:.9rem;

font-weight:700;

text-decoration:none;

transition:all .25s ease;

}

/* Search */

.lb-search-btn{

background:linear-gradient(
135deg,
#2563eb,
#3b82f6
);

color:#fff !important;

}

.lb-search-btn i{

color:#fff;

}

.lb-search-btn:hover{

transform:translateY(-2px);

color:#fff !important;

box-shadow:0 14px 28px rgba(37,99,235,.22);

}

/* Reset */

.lb-reset-btn{

background:linear-gradient(
135deg,
#ef4444,
#dc2626
);

color:#fff !important;

}

.lb-reset-btn i{

color:#fff;

}

.lb-reset-btn:hover{

transform:translateY(-2px);

color:#fff !important;

box-shadow:0 14px 28px rgba(239,68,68,.20);

}

/* View Profile */

.lb-profile-btn{

background:#fff;

border:1px solid var(--border);

color:var(--text);

min-width:150px;

}

.lb-profile-btn:hover{

background:var(--primary);

border-color:var(--primary);

color:#fff;

transform:translateY(-2px);

}

.lb-profile-btn:hover i{

color:#fff;

}

/*==================================================
PREMIUM PAGINATION
==================================================*/

.lb-pagination-wrapper{

margin-top:34px;

}

.lb-pagination{

gap:10px;

}

.lb-pagination .page-link{

display:flex;

align-items:center;

justify-content:center;

min-width:48px;

height:48px;

padding:0 18px;

border:none;

border-radius:14px;

background:#fff;

color:var(--text);

font-weight:700;

box-shadow:var(--shadow-sm);

transition:all .25s ease;

}

.lb-pagination .page-link:hover{

background:var(--primary);

color:#fff;

transform:translateY(-2px);

}

.lb-pagination .page-item.active .page-link{

background:linear-gradient(
135deg,
#2563eb,
#3b82f6
);

color:#fff;

}

.lb-pagination .page-item.disabled .page-link{

background:#eef2f7;

color:#94a3b8;

box-shadow:none;

}

/*==================================================
MICRO INTERACTIONS
==================================================*/

.lb-card,

.lb-stat-card,

.lb-toolbar,

.lb-profile-btn,

.lb-search-btn,

.lb-reset-btn{

transition:all .25s ease;

}

.lb-card:hover{

border-color:#dbeafe;

}

.lb-stat-card:hover .lb-stat-card__icon{

transform:scale(1.08);

}

.lb-card:hover .lb-level{

background:rgba(37,99,235,.15);

}

.lb-card:hover .lb-card__name a{

color:var(--primary);

}

/*==================================================
RESPONSIVE
==================================================*/

@media (max-width:991px){

.leaderboard-page{

padding:28px 0 45px;

}

.leaderboard-page .container{

max-width:900px;

}

.lb-hero{

padding:20px;

}

.lb-card{

grid-template-columns:70px 70px 1fr;

gap:18px;

}

.lb-card__action{

grid-column:1/-1;

justify-content:flex-end;

padding-top:12px;

border-top:1px solid var(--border);

}

}

@media (max-width:768px){

.lb-hero{

flex-direction:column;

align-items:flex-start;

gap:18px;

}

.lb-hero__content{

width:100%;

}

.lb-toolbar{

padding:18px;

}

.lb-toolbar .row{

row-gap:16px;

}

.lb-search-btn,

.lb-reset-btn,

.lb-sort{

width:100%;

}

.lb-card{

grid-template-columns:1fr;

text-align:center;

padding:20px;

}

.lb-card__rank{

justify-content:center;

}

.lb-card__avatar{

justify-content:center;

}

.lb-card__top{

flex-direction:column;

justify-content:center;

align-items:center;

gap:12px;

}


.lb-card__content{

align-items:center;

}

.lb-stats{

justify-content:center;

}

.lb-card__action{

justify-content:center;

border-top:none;

padding-top:6px;

}

}

/*==================================================
MOBILE
==================================================*/

@media (max-width:576px){

.leaderboard-page{

padding:20px 0 35px;

}

.lb-hero{

padding:18px;

border-radius:16px;

}

.lb-hero__icon{

width:54px;

height:54px;

font-size:1.55rem;

border-radius:14px;

}

.lb-hero__title{

font-size:1.4rem;

}

.lb-hero__subtitle{

font-size:.84rem;

}

.lb-stat-card{

padding:16px;

border-radius:16px;

}

.lb-stat-card__icon{

width:48px;

height:48px;

font-size:1.2rem;

}

.lb-stat-card__value{

font-size:1.2rem;

}

.lb-toolbar{

padding:16px;

border-radius:16px;

}

.lb-search .form-control,

.lb-sort,

.lb-search-btn,

.lb-reset-btn{

height:50px;

font-size:.88rem;

}

.lb-card{

padding:18px;

border-radius:16px;

}

.lb-card__avatar img{

width:60px;

height:60px;

}

.lb-card__name{

font-size:1rem;

}

.lb-level{

font-size:.75rem;

padding:6px 12px;

}

.lb-stat{

min-width:90px;

}

.lb-profile-btn{

width:100%;

}

.lb-pagination .page-link{

min-width:42px;

height:42px;

padding:0 14px;

font-size:.85rem;

}

}

/*==================================================
CUSTOM SCROLLBAR
==================================================*/

::-webkit-scrollbar{

width:10px;

height:10px;

}

::-webkit-scrollbar-track{

background:#eef2f7;

}

::-webkit-scrollbar-thumb{

background:#cbd5e1;

border-radius:30px;

}

::-webkit-scrollbar-thumb:hover{

background:#94a3b8;

}

/*==================================================
LIGHT ANIMATIONS
==================================================*/

.lb-hero,
.lb-stat-card,
.lb-toolbar,
.lb-card,
.lb-empty{

animation:fadeUp .45s ease;

}

@keyframes fadeUp{

from{

opacity:0;

transform:translateY(14px);

}

to{

opacity:1;

transform:translateY(0);

}

}

/*==================================================
FINAL DETAILS
==================================================*/

.lb-card,
.lb-stat-card,
.lb-toolbar,
.lb-empty{

overflow:hidden;

}

.lb-card img,
.lb-stat-card img{

max-width:100%;

height:100%;

}

.lb-card *,
.lb-toolbar *,
.lb-stat-card *{

word-break:break-word;

}

.lb-search .form-control,
.lb-sort,
.lb-search-btn,
.lb-reset-btn,
.lb-profile-btn,
.lb-pagination .page-link{

transition:all .25s ease;

}

