/* FF Gamification Pro 5.0 component layer */

.ffgp-ui .ffgp-kicker,
.ffgp-admin .ffgp-kicker{
  display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .78rem;border-radius:999px;
  background:color-mix(in srgb, var(--ffgp-accent) 12%, transparent);
  border:1px solid color-mix(in srgb, var(--ffgp-accent) 28%, var(--ffgp-border));
  color:var(--ffgp-accent);font-size:.76rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;
}

.ffgp-ui .ffgp-wrap{
  padding:1.25rem;
  background:
    radial-gradient(circle at top right, var(--ffgp-glow), transparent 28%),
    var(--ffgp-panel);
}

.ffgp-ui .ffgp-ranking-v2{
  padding:1.35rem;
  overflow:hidden;
}
.ffgp-ui .ffgp-ranking-v2::after{
  content:"";position:absolute;inset:0 auto auto 0;width:100%;height:5px;background:var(--ffgp-gradient);opacity:.95;
}
.ffgp-ui .ffgp-ranking-v2__header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-top:.3rem;padding-bottom:1rem;border-bottom:1px solid var(--ffgp-border);margin-bottom:1rem;}
.ffgp-ui .ffgp-ranking-v2__eyebrow{font-size:.75rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:var(--ffgp-primary);}
.ffgp-ui .ffgp-ranking-v2__title{font-size:1.7rem;font-weight:900;line-height:1.05;}
.ffgp-ui .ffgp-ranking-v2__period{display:inline-flex;align-items:center;gap:.45rem;padding:.4rem .7rem;border-radius:999px;background:var(--ffgp-surface_soft);border:1px solid var(--ffgp-border);font-size:.88rem;font-weight:700;}
.ffgp-ui .ffgp-ranking-v2__meta{color:var(--ffgp-muted);font-size:.92rem;max-width:72ch;}

.ffgp-ui .ffgp-rankcard-v2{
  padding:1rem 1.1rem;
  overflow:hidden;
}
.ffgp-ui .ffgp-rankcard-v2::after{
  content:"";position:absolute;inset:auto -20% -50% auto;width:180px;height:180px;border-radius:50%;
  background:radial-gradient(circle, var(--ffgp-glow), transparent 72%);opacity:.85;pointer-events:none;
}
.ffgp-ui .ffgp-rankcard-v2.trend-up{box-shadow:0 20px 42px color-mix(in srgb, var(--ffgp-success) 18%, transparent);}
.ffgp-ui .ffgp-rankcard-v2.trend-down{box-shadow:0 20px 42px color-mix(in srgb, var(--ffgp-danger) 18%, transparent);}
.ffgp-ui .ffgp-rankcard-v2.trend-flat{box-shadow:var(--ffgp-shadow-soft);}
.ffgp-ui .ffgp-rankcard-v2.is-top3{border-color:color-mix(in srgb, var(--ffgp-accent) 26%, var(--ffgp-border));}
.ffgp-ui .ffgp-rankcard-v2__position{font-size:2.5rem;line-height:1;font-weight:900;min-width:84px;color:color-mix(in srgb, var(--ffgp-primary) 46%, var(--ffgp-muted));}
.ffgp-ui .ffgp-rankcard-v2 a{font-size:1.08rem;font-weight:800;color:var(--ffgp-text);}
.ffgp-ui .ffgp-rankcard-v2 a:hover{color:var(--ffgp-primary);}

.ffgp-ui .ffgp-wdl-strip{display:flex;flex-wrap:wrap;gap:.45rem;}
.ffgp-ui .ffgp-wdl-pill{display:inline-flex;align-items:center;justify-content:center;min-width:54px;padding:.36rem .75rem;border-radius:999px;border:1px solid transparent;font-size:.78rem;font-weight:900;}
.ffgp-ui .ffgp-wdl-pill.wins{background:color-mix(in srgb, var(--ffgp-success) 14%, transparent);border-color:color-mix(in srgb, var(--ffgp-success) 26%, transparent);color:var(--ffgp-success);}
.ffgp-ui .ffgp-wdl-pill.draws{background:color-mix(in srgb, var(--ffgp-primary) 14%, transparent);border-color:color-mix(in srgb, var(--ffgp-primary) 26%, transparent);color:var(--ffgp-primary);}
.ffgp-ui .ffgp-wdl-pill.losses{background:color-mix(in srgb, var(--ffgp-danger) 14%, transparent);border-color:color-mix(in srgb, var(--ffgp-danger) 26%, transparent);color:var(--ffgp-danger);}

.ffgp-ui .ffgp-score-box{
  display:inline-flex;flex-direction:column;align-items:flex-end;min-width:132px;padding:.85rem 1rem;border-radius:18px;
  background:var(--ffgp-panel-strong);border:1px solid var(--ffgp-border);box-shadow:var(--ffgp-shadow-soft);
}
.ffgp-ui .ffgp-score-box__label{font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ffgp-muted);font-weight:900;}
.ffgp-ui .ffgp-score-box__value{font-size:1.65rem;line-height:1;font-weight:900;color:var(--ffgp-text);}
.ffgp-ui .ffgp-score-box.tone-up{border-color:color-mix(in srgb, var(--ffgp-success) 28%, var(--ffgp-border));}
.ffgp-ui .ffgp-score-box.tone-up .ffgp-score-box__value{color:var(--ffgp-success);}
.ffgp-ui .ffgp-score-box.tone-down{border-color:color-mix(in srgb, var(--ffgp-danger) 28%, var(--ffgp-border));}
.ffgp-ui .ffgp-score-box.tone-down .ffgp-score-box__value{color:var(--ffgp-danger);}
.ffgp-ui .ffgp-score-box.tone-flat .ffgp-score-box__value{color:var(--ffgp-primary);}

.ffgp-ui .ffgp-delta-grid{display:flex;flex-wrap:wrap;gap:.55rem;}
.ffgp-ui .ffgp-delta-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.48rem .8rem;border-radius:999px;border:1px solid var(--ffgp-border);font-size:.78rem;font-weight:900;}
.ffgp-ui .ffgp-delta-badge.delta-up{background:color-mix(in srgb, var(--ffgp-success) 14%, transparent);border-color:color-mix(in srgb, var(--ffgp-success) 26%, transparent);color:var(--ffgp-success);}
.ffgp-ui .ffgp-delta-badge.delta-down{background:color-mix(in srgb, var(--ffgp-danger) 14%, transparent);border-color:color-mix(in srgb, var(--ffgp-danger) 26%, transparent);color:var(--ffgp-danger);}
.ffgp-ui .ffgp-delta-badge.delta-flat,.ffgp-ui .ffgp-delta-badge.delta-na{background:color-mix(in srgb, var(--ffgp-primary) 10%, transparent);border-color:color-mix(in srgb, var(--ffgp-primary) 18%, transparent);color:var(--ffgp-primary);}

.ffgp-ui .ffgp-player-dashboard{display:grid;gap:1.1rem;color:var(--ffgp-text);}
.ffgp-ui .ffgp-player-hero-card{overflow:hidden;background:radial-gradient(circle at top right, var(--ffgp-glow), transparent 25%),var(--ffgp-panel);}
.ffgp-ui .ffgp-player-hero-card .progress{height:10px;}
.ffgp-ui .ffgp-player-hero-card .progress-bar{animation:ffgpPulseBar 2.8s ease-in-out infinite;}
.ffgp-ui .ffgp-stat-card-modern{border-radius:22px;overflow:hidden;}
.ffgp-ui .ffgp-stat-card-modern .card-body{position:relative;}
.ffgp-ui .ffgp-stat-card-modern .card-body::after{content:"";position:absolute;inset:auto -24% -38% auto;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle, var(--ffgp-glow), transparent 72%);pointer-events:none;}
.ffgp-ui .ffgp-stat-card-modern.trend-up{border-color:color-mix(in srgb, var(--ffgp-success) 26%, var(--ffgp-border));}
.ffgp-ui .ffgp-stat-card-modern.trend-down{border-color:color-mix(in srgb, var(--ffgp-danger) 26%, var(--ffgp-border));}
.ffgp-ui .ffgp-stat-card-modern.trend-blue{border-color:color-mix(in srgb, var(--ffgp-primary) 26%, var(--ffgp-border));}
.ffgp-ui .ffgp-profile-market .badge,
.ffgp-ui .ffgp-profile-rankings-panel .badge{padding:.48rem .74rem;}
.ffgp-ui .ffgp-profile-rankings-panel .ffgp-ranking-chip-card{background:var(--ffgp-panel-strong);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;}
.ffgp-ui .ffgp-profile-rankings-panel .ffgp-ranking-chip-card:hover{transform:translateY(-2px);box-shadow:var(--ffgp-shadow-soft);}
.ffgp-ui .ffgp-profile-rankings-panel .ffgp-ranking-chip-card.trend-up{border-color:color-mix(in srgb, var(--ffgp-success) 30%, var(--ffgp-border));}
.ffgp-ui .ffgp-profile-rankings-panel .ffgp-ranking-chip-card.trend-down{border-color:color-mix(in srgb, var(--ffgp-danger) 30%, var(--ffgp-border));}
.ffgp-ui .ffgp-profile-rankings-panel .ffgp-ranking-chip-card.trend-na{border-color:color-mix(in srgb, var(--ffgp-primary) 20%, var(--ffgp-border));}

.ffgp-ui .ffgp-player-summary{display:flex;align-items:center;gap:.85rem;min-width:220px;}
.ffgp-ui .ffgp-player-summary img{width:44px;height:44px;object-fit:cover;border-radius:999px;border:2px solid color-mix(in srgb, var(--ffgp-primary) 22%, var(--ffgp-border));box-shadow:0 0 0 4px color-mix(in srgb, var(--ffgp-primary) 10%, transparent);}
.ffgp-ui .ffgp-player-summary-copy{display:flex;flex-direction:column;gap:.12rem;}
.ffgp-ui .ffgp-player-cell{min-width:240px;}
.ffgp-ui .ffgp-inline-flags{display:flex;gap:.6rem;flex-wrap:wrap;}
.ffgp-ui .ffgp-inline-toggle,
.ffgp-ui .ffgp-session-total,
.ffgp-ui .ffgp-chip{display:inline-flex;align-items:center;gap:.5rem;padding:.38rem .7rem;border-radius:999px;background:var(--ffgp-surface_soft);border:1px solid var(--ffgp-border);font-size:.8rem;font-weight:800;color:var(--ffgp-text);}
.ffgp-ui .ffgp-chip.subtle{color:var(--ffgp-muted);}
.ffgp-ui .ffgp-session-total{min-width:46px;justify-content:center;}

.ffgp-ui .ffgp-challenges-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem;}
.ffgp-ui .ffgp-challenge-card{grid-column:span 12;padding:1.2rem;}
.ffgp-ui .ffgp-challenge-top{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:start;margin-bottom:1rem;}
.ffgp-ui .ffgp-challenge-icon{width:54px;height:54px;border-radius:18px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb, var(--ffgp-primary) 14%, transparent);border:1px solid color-mix(in srgb, var(--ffgp-primary) 24%, var(--ffgp-border));font-size:1.55rem;}
.ffgp-ui .ffgp-challenge-copy h4{margin:0 0 .3rem;font-size:1.1rem;font-weight:900;}
.ffgp-ui .ffgp-challenge-copy p{margin:0;color:var(--ffgp-muted);}
.ffgp-ui .ffgp-chip-row{display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:1rem;}
.ffgp-ui .ffgp-challenge-progress-wrap{display:flex;flex-direction:column;gap:.72rem;}
.ffgp-ui .ffgp-challenge-progress-meta{display:flex;justify-content:space-between;gap:1rem;color:var(--ffgp-muted);font-size:.9rem;}

.ffgp-admin .ffgp-ranking-builder-box,
.ffgp-admin .ffgp-stat-card{padding:1rem 1.1rem;}
.ffgp-admin .ffgp-layout-columns-grid > div,
.ffgp-admin .ffgp-layout-columns-grid label{
  background:var(--ffgp-panel-strong);border:1px solid var(--ffgp-border);border-radius:18px;padding:.8rem;
}
.ffgp-admin .ffgp-layout-columns-grid input[type="number"]{max-width:88px;}
.ffgp-admin .widefat td code{display:inline-flex;align-items:center;padding:.2rem .45rem;background:var(--ffgp-surface_soft);border-radius:10px;border:1px solid var(--ffgp-border);}

@keyframes ffgpPulseBar{0%,100%{filter:saturate(1)}50%{filter:saturate(1.25) brightness(1.04)}}

@media (min-width:768px){
  .ffgp-ui .ffgp-challenge-card{grid-column:span 6;}
}
@media (min-width:1200px){
  .ffgp-ui .ffgp-challenge-card{grid-column:span 4;}
}
@media (max-width:767px){
  .ffgp-ui .ffgp-ranking-v2{padding:1rem;}
  .ffgp-ui .ffgp-ranking-v2__header{flex-direction:column;align-items:stretch;}
  .ffgp-ui .ffgp-rankcard-v2__position{font-size:1.9rem;min-width:52px;}
  .ffgp-ui .ffgp-score-box{min-width:108px;padding:.7rem .8rem;}
  .ffgp-ui .ffgp-challenge-top{grid-template-columns:1fr;}
  .ffgp-ui .ffgp-challenge-progress-meta{flex-direction:column;gap:.35rem;}
  .ffgp-ui .ffgp-player-summary{min-width:0;}
  .ffgp-ui .ffgp-rankcard-v2 .row > *{width:50%;}
}
