/* FF Gamification Pro 5.0 UI core
   Scope only inside .ffgp-ui / .ffgp-admin. No global theme leakage. */

.ffgp-ui,
.ffgp-admin,
.wrap.ffgp-admin{
  color:var(--ffgp-text);
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  line-height:1.45;
}
.ffgp-ui *, .ffgp-admin *{box-sizing:border-box;}
.ffgp-ui a, .ffgp-admin a{color:var(--ffgp-primary);text-decoration:none;}
.ffgp-ui a:hover, .ffgp-admin a:hover{color:var(--ffgp-accent);}
.ffgp-ui img, .ffgp-admin img{max-width:100%;height:auto;}
.ffgp-ui svg, .ffgp-admin svg{display:block;max-width:100%;height:auto;}
.ffgp-ui h1,.ffgp-ui h2,.ffgp-ui h3,.ffgp-ui h4,.ffgp-ui h5,.ffgp-ui h6,
.ffgp-admin h1,.ffgp-admin h2,.ffgp-admin h3,.ffgp-admin h4,.ffgp-admin h5,.ffgp-admin h6{
  color:var(--ffgp-text); margin:0 0 .55rem; line-height:1.1; font-weight:900;
}
.ffgp-ui p,.ffgp-admin p{margin:0 0 .7rem;}
.ffgp-ui .description,.ffgp-admin .description,.ffgp-ui .form-text,.ffgp-admin .form-text{color:var(--ffgp-muted);font-size:.92rem;line-height:1.45;}

.ffgp-ui,
.wrap.ffgp-admin{
  background:
    radial-gradient(circle at top right, var(--ffgp-glow), transparent 34%),
    linear-gradient(180deg, color-mix(in srgb, var(--ffgp-bg) 96%, transparent), color-mix(in srgb, var(--ffgp-surface_soft) 92%, transparent));
}
.wrap.ffgp-admin{
  border:1px solid var(--ffgp-border);
  border-radius:32px;
  box-shadow:var(--ffgp-shadow-soft);
  padding:1.5rem;
}

/* Layout helpers */
.ffgp-ui .row,.ffgp-admin .row{display:flex;flex-wrap:wrap;margin-right:-.75rem;margin-left:-.75rem;}
.ffgp-ui .row > *, .ffgp-admin .row > *{padding-right:.75rem;padding-left:.75rem;max-width:100%;}
.ffgp-ui .col-12,.ffgp-admin .col-12{flex:0 0 auto;width:100%;}
.ffgp-ui .col-6,.ffgp-admin .col-6{flex:0 0 auto;width:50%;}
.ffgp-ui .col-4,.ffgp-admin .col-4{flex:0 0 auto;width:33.333333%;}
.ffgp-ui .col-3,.ffgp-admin .col-3{flex:0 0 auto;width:25%;}
.ffgp-ui .col-2,.ffgp-admin .col-2{flex:0 0 auto;width:16.666667%;}
@media (min-width:768px){
  .ffgp-ui .col-md-2,.ffgp-admin .col-md-2{flex:0 0 auto;width:16.666667%;}
  .ffgp-ui .col-md-3,.ffgp-admin .col-md-3{flex:0 0 auto;width:25%;}
  .ffgp-ui .col-md-4,.ffgp-admin .col-md-4{flex:0 0 auto;width:33.333333%;}
  .ffgp-ui .col-md-6,.ffgp-admin .col-md-6{flex:0 0 auto;width:50%;}
  .ffgp-ui .col-md-auto,.ffgp-admin .col-md-auto{flex:0 0 auto;width:auto;}
}
@media (min-width:992px){
  .ffgp-ui .col-lg-2,.ffgp-admin .col-lg-2{flex:0 0 auto;width:16.666667%;}
  .ffgp-ui .col-lg-3,.ffgp-admin .col-lg-3{flex:0 0 auto;width:25%;}
  .ffgp-ui .col-lg-4,.ffgp-admin .col-lg-4{flex:0 0 auto;width:33.333333%;}
  .ffgp-ui .col-lg-8,.ffgp-admin .col-lg-8{flex:0 0 auto;width:66.666667%;}
  .ffgp-ui .row-cols-lg-auto > *, .ffgp-admin .row-cols-lg-auto > *{flex:0 0 auto;width:auto;}
}
@media (min-width:1200px){
  .ffgp-ui .col-xl-3,.ffgp-admin .col-xl-3{flex:0 0 auto;width:25%;}
  .ffgp-ui .col-xl-4,.ffgp-admin .col-xl-4{flex:0 0 auto;width:33.333333%;}
}
@media (max-width:767px){
  .ffgp-ui .col-6,.ffgp-admin .col-6{width:100%;}
}

.ffgp-ui .d-flex,.ffgp-admin .d-flex{display:flex!important;}
.ffgp-ui .d-inline-flex,.ffgp-admin .d-inline-flex{display:inline-flex!important;}
.ffgp-ui .d-none,.ffgp-admin .d-none{display:none!important;}
.ffgp-ui .flex-column,.ffgp-admin .flex-column{flex-direction:column!important;}
.ffgp-ui .flex-wrap,.ffgp-admin .flex-wrap{flex-wrap:wrap!important;}
.ffgp-ui .flex-md-row,.ffgp-admin .flex-md-row{flex-direction:row!important;}
.ffgp-ui .flex-lg-row,.ffgp-admin .flex-lg-row{flex-direction:row!important;}
.ffgp-ui .justify-content-between,.ffgp-admin .justify-content-between{justify-content:space-between!important;}
.ffgp-ui .justify-content-center,.ffgp-admin .justify-content-center{justify-content:center!important;}
.ffgp-ui .justify-content-end,.ffgp-admin .justify-content-end{justify-content:flex-end!important;}
.ffgp-ui .align-items-center,.ffgp-admin .align-items-center{align-items:center!important;}
.ffgp-ui .align-items-start,.ffgp-admin .align-items-start{align-items:flex-start!important;}
.ffgp-ui .align-items-end,.ffgp-admin .align-items-end{align-items:flex-end!important;}
.ffgp-ui .align-items-md-center,.ffgp-admin .align-items-md-center{align-items:center!important;}
.ffgp-ui .align-items-lg-center,.ffgp-admin .align-items-lg-center{align-items:center!important;}
.ffgp-ui .align-middle,.ffgp-admin .align-middle{vertical-align:middle!important;}
.ffgp-ui .gap-2,.ffgp-admin .gap-2{gap:.5rem!important;}
.ffgp-ui .gap-3,.ffgp-admin .gap-3{gap:1rem!important;}
.ffgp-ui .gap-4,.ffgp-admin .gap-4{gap:1.5rem!important;}
.ffgp-ui .g-2,.ffgp-admin .g-2{row-gap:.5rem;}
.ffgp-ui .g-3,.ffgp-admin .g-3{row-gap:1rem;}
.ffgp-ui .g-4,.ffgp-admin .g-4{row-gap:1.5rem;}
.ffgp-ui .text-center,.ffgp-admin .text-center{text-align:center!important;}
.ffgp-ui .text-end,.ffgp-admin .text-end,.ffgp-ui .text-lg-end,.ffgp-admin .text-lg-end{text-align:right!important;}
.ffgp-ui .text-md-start,.ffgp-admin .text-md-start{text-align:left!important;}
.ffgp-ui .text-uppercase,.ffgp-admin .text-uppercase{text-transform:uppercase!important;letter-spacing:.12em;}
.ffgp-ui .text-decoration-none,.ffgp-admin .text-decoration-none{text-decoration:none!important;}
.ffgp-ui .fw-bold,.ffgp-admin .fw-bold{font-weight:800!important;}
.ffgp-ui .fw-semibold,.ffgp-admin .fw-semibold{font-weight:700!important;}
.ffgp-ui .small,.ffgp-admin .small{font-size:.875rem!important;}
.ffgp-ui .display-6,.ffgp-admin .display-6{font-size:2rem;line-height:1;font-weight:900;}
.ffgp-ui .h3,.ffgp-admin .h3{font-size:1.8rem;font-weight:900;}
.ffgp-ui .h4,.ffgp-admin .h4{font-size:1.45rem;font-weight:900;}
.ffgp-ui .h5,.ffgp-admin .h5{font-size:1.1rem;font-weight:800;}
.ffgp-ui .h6,.ffgp-admin .h6{font-size:1rem;font-weight:800;}
.ffgp-ui .text-muted,.ffgp-admin .text-muted,.ffgp-ui .text-secondary,.ffgp-admin .text-secondary{color:var(--ffgp-muted)!important;}
.ffgp-ui .text-primary,.ffgp-admin .text-primary{color:var(--ffgp-primary)!important;}
.ffgp-ui .text-success,.ffgp-admin .text-success{color:var(--ffgp-success)!important;}
.ffgp-ui .text-danger,.ffgp-admin .text-danger{color:var(--ffgp-danger)!important;}
.ffgp-ui .text-dark,.ffgp-admin .text-dark,.ffgp-ui .text-secondary-emphasis,.ffgp-admin .text-secondary-emphasis{color:var(--ffgp-text)!important;}
.ffgp-ui .text-warning-emphasis,.ffgp-admin .text-warning-emphasis{color:var(--ffgp-warning)!important;}
.ffgp-ui .bg-white,.ffgp-admin .bg-white{background:var(--ffgp-surface)!important;}
.ffgp-ui .bg-light,.ffgp-admin .bg-light,.ffgp-ui .bg-secondary-subtle,.ffgp-admin .bg-secondary-subtle{background:var(--ffgp-surface_soft)!important;}
.ffgp-ui .bg-warning-subtle,.ffgp-admin .bg-warning-subtle{background:color-mix(in srgb, var(--ffgp-warning) 16%, transparent)!important;}
.ffgp-ui .text-bg-light,.ffgp-admin .text-bg-light,
.ffgp-ui .text-bg-secondary,.ffgp-admin .text-bg-secondary,
.ffgp-ui .text-bg-success,.ffgp-admin .text-bg-success{
  display:inline-flex;align-items:center;border-radius:999px;padding:.45rem .7rem;border:1px solid var(--ffgp-border);
}
.ffgp-ui .text-bg-light,.ffgp-admin .text-bg-light{background:var(--ffgp-surface_soft)!important;color:var(--ffgp-text)!important;}
.ffgp-ui .text-bg-secondary,.ffgp-admin .text-bg-secondary{background:color-mix(in srgb, var(--ffgp-primary) 10%, transparent)!important;color:var(--ffgp-muted)!important;}
.ffgp-ui .text-bg-success,.ffgp-admin .text-bg-success{background:color-mix(in srgb, var(--ffgp-success) 16%, transparent)!important;color:var(--ffgp-success)!important;}
.ffgp-ui .rounded-3,.ffgp-admin .rounded-3{border-radius:var(--ffgp-radius-sm)!important;}
.ffgp-ui .rounded-4,.ffgp-admin .rounded-4{border-radius:var(--ffgp-radius)!important;}
.ffgp-ui .rounded-circle,.ffgp-admin .rounded-circle{border-radius:999px!important;}
.ffgp-ui .border,.ffgp-admin .border{border:1px solid var(--ffgp-border)!important;}
.ffgp-ui .border-0,.ffgp-admin .border-0{border:0!important;}
.ffgp-ui .border-top,.ffgp-admin .border-top{border-top:1px solid var(--ffgp-border)!important;}
.ffgp-ui .shadow-sm,.ffgp-admin .shadow-sm{box-shadow:var(--ffgp-shadow-soft)!important;}
.ffgp-ui .shadow-lg,.ffgp-admin .shadow-lg{box-shadow:var(--ffgp-shadow)!important;}
.ffgp-ui .h-100,.ffgp-admin .h-100{height:100%!important;}
.ffgp-ui .overflow-hidden,.ffgp-admin .overflow-hidden{overflow:hidden!important;}
.ffgp-ui .mb-0,.ffgp-admin .mb-0{margin-bottom:0!important;}
.ffgp-ui .mb-1,.ffgp-admin .mb-1{margin-bottom:.25rem!important;}
.ffgp-ui .mb-2,.ffgp-admin .mb-2{margin-bottom:.5rem!important;}
.ffgp-ui .mb-3,.ffgp-admin .mb-3{margin-bottom:1rem!important;}
.ffgp-ui .mb-4,.ffgp-admin .mb-4{margin-bottom:1.5rem!important;}
.ffgp-ui .mt-1,.ffgp-admin .mt-1{margin-top:.25rem!important;}
.ffgp-ui .mt-2,.ffgp-admin .mt-2{margin-top:.5rem!important;}
.ffgp-ui .mt-3,.ffgp-admin .mt-3{margin-top:1rem!important;}
.ffgp-ui .mt-4,.ffgp-admin .mt-4{margin-top:1.5rem!important;}
.ffgp-ui .ms-2,.ffgp-admin .ms-2{margin-left:.5rem!important;}
.ffgp-ui .p-2,.ffgp-admin .p-2{padding:.5rem!important;}
.ffgp-ui .p-3,.ffgp-admin .p-3{padding:1rem!important;}
.ffgp-ui .p-4,.ffgp-admin .p-4,.ffgp-ui .p-md-4,.ffgp-admin .p-md-4{padding:1.5rem!important;}
.ffgp-ui .py-2,.ffgp-admin .py-2{padding-top:.5rem!important;padding-bottom:.5rem!important;}

/* Components */
.ffgp-ui .card,
.ffgp-admin .card,
.ffgp-admin .widefat,
.ffgp-ui .ffgp-wrap,
.ffgp-ui .ffgp-ranking-v2,
.ffgp-ui .ffgp-rankcard-v2,
.ffgp-ui .ffgp-challenge-card,
.ffgp-admin .ffgp-stat-card,
.ffgp-admin .ffgp-ranking-builder-box{
  background:var(--ffgp-panel);
  border:1px solid var(--ffgp-border);
  border-radius:var(--ffgp-radius);
  box-shadow:var(--ffgp-shadow-soft);
  color:var(--ffgp-text);
  position:relative;
}
.ffgp-ui .ffgp-wrap::before,
.ffgp-ui .card::before,
.ffgp-admin .card::before,
.ffgp-admin .ffgp-ranking-builder-box::before,
.ffgp-admin .ffgp-stat-card::before{
  content:"";position:absolute;inset:0 auto auto 0;width:100%;height:1px;
  background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--ffgp-primary) 65%, white 35%), transparent);
  opacity:.55;pointer-events:none;
}
.ffgp-ui .card-body,.ffgp-admin .card-body{padding:1.25rem;}
.ffgp-ui .badge,.ffgp-admin .badge{
  display:inline-flex;align-items:center;gap:.35rem;padding:.42rem .72rem;border-radius:999px;
  border:1px solid var(--ffgp-border);background:color-mix(in srgb, var(--ffgp-primary) 10%, transparent);color:var(--ffgp-text);font-size:.78rem;font-weight:800;
}
.ffgp-ui .btn,.ffgp-admin .btn,.ffgp-admin .button,.ffgp-admin .button-primary,.ffgp-admin .button-secondary{
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:42px;padding:.75rem 1rem;
  border-radius:14px;border:1px solid transparent;font-weight:800;cursor:pointer;transition:transform .16s ease,filter .16s ease,box-shadow .16s ease,background-color .16s ease;
}
.ffgp-ui .btn:hover,.ffgp-admin .btn:hover,.ffgp-admin .button:hover,.ffgp-admin .button-primary:hover,.ffgp-admin .button-secondary:hover{transform:translateY(-1px);filter:brightness(1.03);}
.ffgp-ui .btn-primary,.ffgp-admin .btn-primary,.ffgp-admin .button-primary{background:var(--ffgp-gradient);color:#fff;box-shadow:0 16px 32px var(--ffgp-glow);}
.ffgp-ui .btn-outline-primary,.ffgp-admin .btn-outline-primary{background:transparent;color:var(--ffgp-primary);border-color:color-mix(in srgb, var(--ffgp-primary) 40%, var(--ffgp-border));}
.ffgp-ui .btn-outline-secondary,.ffgp-admin .btn-outline-secondary,.ffgp-admin .button-secondary{background:var(--ffgp-surface_soft);color:var(--ffgp-text);border-color:var(--ffgp-border);}
.ffgp-ui .btn-outline-danger,.ffgp-admin .btn-outline-danger{background:transparent;color:var(--ffgp-danger);border-color:color-mix(in srgb, var(--ffgp-danger) 40%, var(--ffgp-border));}
.ffgp-ui .btn-sm,.ffgp-admin .btn-sm,.ffgp-admin .button-small{min-height:34px;padding:.45rem .7rem;border-radius:12px;font-size:.85rem;}

.ffgp-ui .form-control,.ffgp-admin input[type="text"],.ffgp-admin input[type="number"],.ffgp-admin input[type="email"],.ffgp-admin input[type="date"],.ffgp-admin textarea,
.ffgp-ui .form-select,.ffgp-admin select{
  width:100%; min-height:44px; border-radius:14px; border:1px solid var(--ffgp-border);
  background:var(--ffgp-panel-strong); color:var(--ffgp-text); padding:.7rem .9rem; box-shadow:none;
}
.ffgp-ui textarea.form-control,.ffgp-admin textarea{min-height:110px;resize:vertical;}
.ffgp-ui .form-control:focus,.ffgp-ui .form-select:focus,
.ffgp-admin input[type="text"]:focus,.ffgp-admin input[type="number"]:focus,.ffgp-admin input[type="email"]:focus,.ffgp-admin input[type="date"]:focus,.ffgp-admin textarea:focus,.ffgp-admin select:focus{
  outline:none; box-shadow:var(--ffgp-ring); border-color:color-mix(in srgb, var(--ffgp-primary) 48%, var(--ffgp-border));
}
.ffgp-ui .form-control-sm,.ffgp-admin .form-control-sm,.ffgp-ui .form-select-sm,.ffgp-admin .form-select-sm{min-height:36px;padding:.5rem .7rem;border-radius:12px;font-size:.92rem;}
.ffgp-ui .form-label,.ffgp-admin .form-label{display:inline-block;margin:0 0 .45rem;font-size:.86rem;font-weight:800;color:var(--ffgp-muted);letter-spacing:.04em;text-transform:uppercase;}
.ffgp-ui input[type="checkbox"],.ffgp-admin input[type="checkbox"]{accent-color:var(--ffgp-primary);}
.ffgp-ui .form-check,.ffgp-admin .form-check,.ffgp-ui .form-switch,.ffgp-admin .form-switch{display:flex;align-items:center;gap:.55rem;}
.ffgp-ui .form-check-label,.ffgp-admin .form-check-label{font-weight:700;color:var(--ffgp-text);}

.ffgp-ui .alert,.ffgp-admin .alert{padding:1rem 1.1rem;border-radius:16px;border:1px solid var(--ffgp-border);background:var(--ffgp-panel-strong);}
.ffgp-ui .alert-warning,.ffgp-admin .alert-warning{background:color-mix(in srgb, var(--ffgp-warning) 16%, transparent);color:var(--ffgp-warning);}
.ffgp-ui .alert-danger,.ffgp-admin .alert-danger{background:color-mix(in srgb, var(--ffgp-danger) 14%, transparent);color:var(--ffgp-danger);}
.ffgp-ui .alert-success,.ffgp-admin .alert-success{background:color-mix(in srgb, var(--ffgp-success) 14%, transparent);color:var(--ffgp-success);}
.ffgp-ui .alert-light,.ffgp-admin .alert-light{background:var(--ffgp-panel-strong);color:var(--ffgp-text);}

.ffgp-ui .table-responsive,.ffgp-admin .table-responsive{width:100%;overflow:auto;border-radius:18px;}
.ffgp-ui .table,.ffgp-admin .table,.ffgp-admin .widefat{width:100%;border-collapse:separate;border-spacing:0;background:var(--ffgp-panel-strong);overflow:hidden;}
.ffgp-ui .table thead th,.ffgp-admin .table thead th,.ffgp-admin .widefat thead th{
  background:color-mix(in srgb, var(--ffgp-primary) 12%, var(--ffgp-surface));
  color:var(--ffgp-text);font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;padding:.9rem .95rem;border-bottom:1px solid var(--ffgp-border);
}
.ffgp-ui .table td,.ffgp-ui .table th,.ffgp-admin .widefat td,.ffgp-admin .widefat th{padding:.85rem .95rem;border-bottom:1px solid var(--ffgp-border);vertical-align:middle;}
.ffgp-ui .table tbody tr:last-child td,.ffgp-admin .widefat tbody tr:last-child td{border-bottom:none;}
.ffgp-ui .table tbody tr:nth-child(even),.ffgp-admin .widefat.striped tbody tr:nth-child(even){background:color-mix(in srgb, var(--ffgp-surface_alt) 86%, transparent);}
.ffgp-ui .table-sm td,.ffgp-ui .table-sm th{padding:.65rem .75rem;}
.ffgp-ui .table-light,.ffgp-admin .table-light{background:var(--ffgp-surface_soft)!important;}

.ffgp-ui .progress,.ffgp-admin .progress,.ffgp-ui .ffgp-progress{
  display:block;width:100%;height:12px;border-radius:999px;background:color-mix(in srgb, var(--ffgp-primary) 10%, var(--ffgp-surface_soft));border:1px solid var(--ffgp-border);overflow:hidden;
}
.ffgp-ui .progress-bar,.ffgp-admin .progress-bar,.ffgp-ui .ffgp-progress > span{
  display:block;height:100%;background:var(--ffgp-gradient);border-radius:inherit;box-shadow:0 0 24px var(--ffgp-glow);
}

/* Admin specific */
.ffgp-admin .ffgp-stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1.25rem 0 1.5rem;}
.ffgp-admin .ffgp-grid-two{display:grid;grid-template-columns:1.2fr .8fr;gap:1rem;align-items:start;}
.ffgp-admin .ffgp-admin-form{display:grid;gap:1rem;}
.ffgp-admin .ffgp-layout-columns-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.9rem;padding:1rem;background:var(--ffgp-surface_soft);border:1px solid var(--ffgp-border);border-radius:20px;}
.ffgp-admin .ffgp-stat-card strong{display:block;font-size:1.9rem;line-height:1;font-weight:900;margin-bottom:.35rem;}
.ffgp-admin .ffgp-ui-engine-note{padding:.95rem 1rem;border-radius:16px;background:var(--ffgp-panel-strong);border:1px solid var(--ffgp-border);font-weight:700;}
.ffgp-admin .notice{border-radius:18px;}

@media (max-width:991px){
  .ffgp-admin .ffgp-grid-two{grid-template-columns:1fr;}
  .ffgp-admin .ffgp-stats-grid{grid-template-columns:1fr;}
}
@media (max-width:767px){
  .wrap.ffgp-admin{padding:1rem;border-radius:24px;}
  .ffgp-ui .ffgp-wrap,.ffgp-ui .card,.ffgp-admin .card,.ffgp-admin .widefat{border-radius:20px;}
}
