.pp-stats-dashboard{padding:0 0 32px}
/* ── ROI Filters ── */
.pp-roi-filters{margin-bottom:20px}
.pp-roi-filter-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 18px;background:var(--pp-bg-card);border:1px solid var(--pp-border);border-radius:var(--pp-radius-sm);box-shadow:var(--pp-shadow)}
.pp-roi-select{padding:7px 12px;border:1px solid var(--pp-border);border-radius:var(--pp-radius-xs);background:var(--pp-bg-input,var(--pp-bg));color:var(--pp-text);font-size:13px;font-weight:500;cursor:pointer;outline:none;transition:border-color .15s}
.pp-roi-select:focus{border-color:var(--pp-accent)}
.pp-roi-filter-clear{font-size:12px;color:var(--pp-text-muted);text-decoration:none;padding:6px 10px;border:1px solid var(--pp-border);border-radius:var(--pp-radius-xs);white-space:nowrap}
.pp-roi-filter-clear:hover{color:var(--pp-loss);border-color:var(--pp-loss)}
.pp-roi-filter-label{font-size:12px;color:var(--pp-text-muted);margin-left:auto}
.pp-roi-filter-label strong{color:var(--pp-text)}
/* ── Hero metrics ── */
.pp-stats-hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:14px;margin-bottom:28px}
.pp-stats-hero-card{background:var(--pp-bg-card);border:1px solid var(--pp-border);border-radius:var(--pp-radius);padding:20px 16px;text-align:center;box-shadow:var(--pp-shadow);transition:transform .18s,box-shadow .18s}
.pp-stats-hero-card:hover{transform:translateY(-2px);box-shadow:var(--pp-shadow-hover)}
.pp-stats-hero-card.pp-hero-accent{border-color:var(--pp-accent);background:var(--pp-accent-soft)}
.pp-stats-hero-icon{font-size:22px;display:block;margin-bottom:8px;line-height:1}
.pp-stats-hero-value{font-size:30px;font-weight:900;color:var(--pp-text);line-height:1;letter-spacing:-.03em;display:block}
.pp-stats-hero-value.pos{color:var(--pp-win)}
.pp-stats-hero-value.neg{color:var(--pp-loss)}
.pp-stats-hero-value.acc{color:var(--pp-accent)}
.pp-stats-hero-label{font-size:10px;font-weight:700;color:var(--pp-text-faint);text-transform:uppercase;letter-spacing:.08em;margin-top:5px;display:block}
.pp-stats-hero-sub{font-size:11px;color:var(--pp-text-muted);margin-top:3px;display:block}
/* ── Two-col layout ── */
.pp-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}
@media(max-width:768px){.pp-stats-grid{grid-template-columns:1fr}}
.pp-stats-section{background:var(--pp-bg-card);border:1px solid var(--pp-border);border-radius:var(--pp-radius);padding:22px;box-shadow:var(--pp-shadow)}
.pp-stats-section.pp-full{grid-column:1/-1}
.pp-stats-section-title{font-size:14px;font-weight:800;color:var(--pp-text);margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid var(--pp-border);letter-spacing:-.01em;display:flex;align-items:center;gap:8px}
/* ── Bar chart ── */
.pp-bar-chart{display:flex;gap:6px;align-items:flex-end;height:120px;padding-bottom:4px}
.pp-bar-group{display:flex;flex-direction:column;align-items:center;gap:2px;flex:1;min-width:0}
.pp-bar-stack{display:flex;flex-direction:column;justify-content:flex-end;gap:2px;width:100%;flex:1}
.pp-bar{border-radius:3px 3px 0 0;width:100%;min-height:2px;transition:height .3s}
.pp-bar-win{background:var(--pp-win)}
.pp-bar-loss{background:var(--pp-loss)}
.pp-bar-label{font-size:9px;color:var(--pp-text-faint);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.pp-bar-val{font-size:9px;font-weight:700;color:var(--pp-text-muted);text-align:center}
/* ── Sport table ── */
.pp-sport-row{display:grid;grid-template-columns:1fr 40px 40px 80px 70px;gap:6px;align-items:center;padding:9px 0;border-bottom:1px solid var(--pp-border);font-size:13px}
.pp-sport-row:last-child{border-bottom:none}
.pp-sport-row-head{font-size:10px;font-weight:700;color:var(--pp-text-faint);text-transform:uppercase;letter-spacing:.06em;padding-bottom:6px;border-bottom:2px solid var(--pp-border-strong)}
.pp-sport-name{font-weight:600;color:var(--pp-text)}
.pp-sport-num{text-align:center;color:var(--pp-text-muted)}
.pp-sport-num.win{color:var(--pp-win)}
.pp-sport-num.loss{color:var(--pp-loss)}
.pp-sport-wr-wrap{display:flex;align-items:center;gap:6px}
.pp-sport-wr-bar{flex:1;height:5px;background:var(--pp-border);border-radius:3px;overflow:hidden}
.pp-sport-wr-fill{height:100%;border-radius:3px;background:var(--pp-accent)}
.pp-sport-wr-label{font-size:11px;font-weight:700;color:var(--pp-text);min-width:34px;text-align:right}
/* ── Recent picks ── */
.pp-recent-pick{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--pp-border);font-size:13px}
.pp-recent-pick:last-child{border-bottom:none}
.pp-recent-result{width:48px;height:24px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}
.pp-recent-result.win{background:var(--pp-win-bg);color:var(--pp-win)}
.pp-recent-result.loss{background:var(--pp-loss-bg);color:var(--pp-loss)}
.pp-recent-result.push{background:var(--pp-push-bg);color:var(--pp-push)}
.pp-recent-result.void{background:var(--pp-void-bg);color:var(--pp-void)}
.pp-recent-body{flex:1;min-width:0}
.pp-recent-match{font-weight:600;color:var(--pp-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pp-recent-meta{font-size:11px;color:var(--pp-text-muted);margin-top:1px}
.pp-recent-units{font-size:12px;font-weight:700;color:var(--pp-text-muted);flex-shrink:0}
/* ── Streak badge ── */
.pp-streak{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:var(--pp-radius-sm);font-weight:700;font-size:15px}
.pp-streak.win{background:var(--pp-win-bg);color:var(--pp-win);border:1px solid var(--pp-win)}
.pp-streak.loss{background:var(--pp-loss-bg);color:var(--pp-loss);border:1px solid var(--pp-loss)}
.pp-streak.none{background:var(--pp-bg-card-hover);color:var(--pp-text-muted);border:1px solid var(--pp-border)}
/* ── Donut ── */
.pp-donut-wrap{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.pp-donut-svg{flex-shrink:0}
.pp-donut-legend{display:flex;flex-direction:column;gap:8px}
.pp-donut-legend-row{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--pp-text)}
.pp-donut-legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.pp-donut-legend-val{font-weight:700;margin-left:auto;color:var(--pp-text-muted)}
/* ── All-time vs period ── */
.pp-compare-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--pp-border);font-size:13px}
.pp-compare-row:last-child{border-bottom:none}
.pp-compare-label{color:var(--pp-text-muted);font-weight:500}
.pp-compare-vals{display:flex;gap:16px}
.pp-compare-val{font-weight:700;color:var(--pp-text);min-width:50px;text-align:right}
.pp-compare-head{font-size:10px;font-weight:800;color:var(--pp-text-faint);text-transform:uppercase;letter-spacing:.06em}
/* ── v3.18 Admin-template dashboard: gradient banner + KPI tiles + charts ── */
.pp-stats-banner{position:relative;overflow:hidden;border-radius:var(--pp-radius);padding:22px 26px;margin-bottom:18px;color:#fff;
    background:linear-gradient(135deg,var(--pp-accent),var(--pp-accent-2) 60%,var(--pp-accent));
    display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;
    box-shadow:0 14px 34px -18px var(--pp-accent)}
.pp-stats-banner-glow{position:absolute;top:-50%;right:-8%;width:260px;height:260px;border-radius:50%;
    background:radial-gradient(circle,rgba(255,255,255,.3),transparent 70%);pointer-events:none}
.pp-stats-banner-main{position:relative}
.pp-stats-banner-label{font-size:12px;font-weight:600;opacity:.92;display:block}
.pp-stats-banner-value{font-size:44px;font-weight:900;line-height:1.02;letter-spacing:-.03em;display:block;margin-top:2px}
.pp-stats-banner-value small{font-size:22px;font-weight:800;opacity:.85}
.pp-stats-banner-delta{font-size:12px;opacity:.95;display:inline-flex;align-items:center;gap:6px;margin-top:4px}
.pp-stats-banner-chips{position:relative;display:flex;gap:26px;flex-wrap:wrap}
.pp-stats-banner-chips span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.06em;opacity:.85}
.pp-stats-banner-chips b{font-size:19px;font-weight:800}
/* KPI tiles */
.pp-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.pp-kpi-tile{display:flex;align-items:center;gap:13px;text-align:left;background:var(--pp-bg-card);border:1px solid var(--pp-border);
    border-radius:var(--pp-radius);padding:16px 18px;box-shadow:var(--pp-shadow);transition:transform .18s,box-shadow .18s}
.pp-kpi-tile:hover{transform:translateY(-2px);box-shadow:var(--pp-shadow-hover)}
.pp-kpi-ico{width:44px;height:44px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:19px;flex-shrink:0;font-weight:800}
.pp-kpi-ico.i-green{background:color-mix(in srgb,var(--pp-win) 16%,transparent);color:var(--pp-win)}
.pp-kpi-ico.i-blue{background:var(--pp-accent-soft);color:var(--pp-accent)}
.pp-kpi-ico.i-violet{background:color-mix(in srgb,var(--pp-void) 16%,transparent);color:var(--pp-void)}
.pp-kpi-ico.i-amber{background:color-mix(in srgb,var(--pp-pending) 18%,transparent);color:var(--pp-pending)}
.pp-kpi-body{flex:1;min-width:0}
.pp-kpi-label{display:block;font-size:11.5px;font-weight:600;color:var(--pp-text-muted)}
.pp-kpi-val{font-size:24px;font-weight:900;color:var(--pp-text);letter-spacing:-.02em;line-height:1.1}
.pp-kpi-val.pos{color:var(--pp-win)}.pp-kpi-val.neg{color:var(--pp-loss)}
.pp-kpi-delta{font-size:11px;font-weight:800;padding:3px 9px;border-radius:20px;white-space:nowrap;align-self:flex-start}
.pp-kpi-delta.up{background:color-mix(in srgb,var(--pp-win) 16%,transparent);color:var(--pp-win)}
.pp-kpi-delta.down{background:color-mix(in srgb,var(--pp-loss) 16%,transparent);color:var(--pp-loss)}
.pp-kpi-delta.flat{background:var(--pp-bg-card-hover,var(--pp-border));color:var(--pp-text-muted)}
/* Chart holders */
.pp-chart-holder{position:relative;height:200px}
.pp-chart-holder canvas{max-height:200px}
.pp-donut-canvas-wrap{position:relative;width:150px;height:150px;flex-shrink:0}
.pp-donut-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}
.pp-donut-center b{font-size:24px;font-weight:900;color:var(--pp-text);line-height:1}
.pp-donut-center span{font-size:10px;color:var(--pp-text-muted)}
/* ── Public Graded Record ── */
.pp-graded-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.pp-graded-sub{font-size:12px;color:var(--pp-text-muted);margin-top:3px;font-weight:600}
.pp-graded-form{display:flex;gap:5px;flex-wrap:wrap;max-width:60%;justify-content:flex-end}
.pgp{width:19px;height:19px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:900;font-style:normal;flex-shrink:0;line-height:1}
.pgp-win{background:var(--pp-win-bg);color:var(--pp-win);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--pp-win) 55%,transparent)}
.pgp-loss{background:var(--pp-loss-bg);color:var(--pp-loss);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--pp-loss) 55%,transparent)}
.pgp-push{background:var(--pp-push-bg);color:var(--pp-push);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--pp-push) 55%,transparent)}
.pgp-void{background:var(--pp-void-bg);color:var(--pp-void);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--pp-void) 55%,transparent)}
.pp-graded-rows{display:flex;flex-direction:column}
.pp-graded-row{display:grid;grid-template-columns:60px 1fr 60px;align-items:center;gap:12px;padding:9px 8px;border-radius:9px;transition:background .12s}
.pp-graded-row:not(.pp-graded-row--head):hover{background:var(--pp-bg-card-hover,rgba(127,127,127,.06))}
.pp-graded-row--head{padding:4px 8px 8px;border-bottom:1px solid var(--pp-border);border-radius:0;margin-bottom:4px}
.pp-graded-row--head span{font-size:9.5px;font-weight:800;color:var(--pp-text-faint);text-transform:uppercase;letter-spacing:.07em}
.pp-graded-date{font-size:12px;color:var(--pp-text-muted);font-weight:700;font-variant-numeric:tabular-nums}
.pp-graded-pips{display:flex;gap:5px;flex-wrap:wrap}
.pp-graded-net{text-align:right;font-size:12.5px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--pp-text-muted)}
.pp-graded-net.pos{color:var(--pp-win)}.pp-graded-net.neg{color:var(--pp-loss)}
@media(max-width:520px){.pp-graded-form{max-width:100%;justify-content:flex-start}}
