﻿/* ============================================================
   Predictions Plugin — Frontend CSS v3.3
   9 premium themes • picks • packages • capper
   All scoped to .predictions-plugin-wrap[data-theme]
   ============================================================ */

/* ── Base CSS Variables — Classic (light default) ─────────── */
.predictions-plugin-wrap {
    --pp-bg:              #ffffff;
    --pp-bg-card:         #f8f9fb;
    --pp-bg-card-hover:   #f0f4f8;
    --pp-bg-input:        #f8fafc;
    --pp-border:          #e2e8f0;
    --pp-border-strong:   #cbd5e1;
    --pp-text:            #0f172a;
    --pp-text-muted:      #64748b;
    --pp-text-faint:      #94a3b8;
    --pp-accent:          #e85500;
    --pp-accent-2:        #cc4000;
    --pp-accent-soft:     #eff6ff;
    --pp-accent-text:     #ffffff;
    --pp-win:             #16a34a;
    --pp-win-bg:          #dcfce7;
    --pp-loss:            #dc2626;
    --pp-loss-bg:         #fee2e2;
    --pp-push:            #64748b;
    --pp-push-bg:         #f1f5f9;
    --pp-pending:         #d97706;
    --pp-pending-bg:      #fef3c7;
    --pp-void:            #7c3aed;
    --pp-void-bg:         #ede9fe;
    --pp-radius:          14px;
    --pp-radius-sm:       8px;
    --pp-radius-xs:       6px;
    --pp-shadow:          0 2px 8px rgba(0,0,0,.07), 0 1px 3px rgba(0,0,0,.04);
    --pp-shadow-hover:    0 8px 24px rgba(0,0,0,.12), 0 2px 8px rgba(0,0,0,.06);
    --pp-shadow-card:     0 1px 4px rgba(0,0,0,.06);
    --pp-glow:            none;
    --pp-featured-ring:   0 0 0 2px var(--pp-accent);
    --pp-font:            -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --pp-transition:      .2s cubic-bezier(.4,0,.2,1);
    --pp-badge-low:       #94a3b8;
    --pp-badge-medium:    #e85500;
    --pp-badge-high:      #f59e0b;
    --pp-badge-max:       #ef4444;
    --pp-stat-1:          linear-gradient(135deg,#e85500,#cc4000);
    --pp-stat-2:          linear-gradient(135deg,#f59e0b,#d97706);
    --pp-stat-3:          linear-gradient(135deg,#10b981,#047857);
    --pp-stat-4:          linear-gradient(135deg,#8b5cf6,#6d28d9);
    --pp-stat-5:          linear-gradient(135deg,#ec4899,#be185d);
    --pp-stat-6:          linear-gradient(135deg,#6b7280,#374151);
    --pp-stat-7:          linear-gradient(135deg,#14b8a6,#0f766e);

    font-family: var(--pp-font);
    color: var(--pp-text);
    background: var(--pp-bg);
    max-width: 100%;
    box-sizing: border-box;
    padding: 8px 0 24px;
    isolation: isolate;
}

/* ═══════════════════════════════════════════════════════════
   THEMES
   ═══════════════════════════════════════════════════════════ */

/* ── 1. DARK ────────────────────────────────────────────────── */
.predictions-plugin-wrap[data-theme="dark"] {
    --pp-bg:            #0f172a;
    --pp-bg-card:       #1e293b;
    --pp-bg-card-hover: #263147;
    --pp-bg-input:      #1e293b;
    --pp-border:        #334155;
    --pp-border-strong: #475569;
    --pp-text:          #f1f5f9;
    --pp-text-muted:    #94a3b8;
    --pp-text-faint:    #64748b;
    --pp-accent:        #ff7a35;
    --pp-accent-2:      #e85500;
    --pp-accent-soft:   rgba(96,165,250,.12);
    --pp-win-bg:        rgba(22,163,74,.18);
    --pp-loss-bg:       rgba(220,38,38,.18);
    --pp-push-bg:       rgba(100,116,139,.15);
    --pp-pending-bg:    rgba(217,119,6,.18);
    --pp-void-bg:       rgba(124,58,237,.18);
    --pp-shadow:        0 2px 12px rgba(0,0,0,.4);
    --pp-shadow-hover:  0 8px 28px rgba(0,0,0,.5);
    --pp-shadow-card:   0 1px 6px rgba(0,0,0,.3);
}

/* ── 2. NEON ONYX ───────────────────────────────────────────── */
.predictions-plugin-wrap[data-theme="neon-onyx"] {
    --pp-bg:            #0a0a0a;
    --pp-bg-card:       #111111;
    --pp-bg-card-hover: #161616;
    --pp-bg-input:      #0d0d0d;
    --pp-border:        #1f1f1f;
    --pp-border-strong: #2a2a2a;
    --pp-text:          #e8e8e8;
    --pp-text-muted:    #666666;
    --pp-text-faint:    #444444;
    --pp-accent:        #00ff88;
    --pp-accent-2:      #00e5ff;
    --pp-accent-soft:   rgba(0,255,136,.08);
    --pp-accent-text:   #0a0a0a;
    --pp-win:           #00ff88;
    --pp-win-bg:        rgba(0,255,136,.1);
    --pp-loss:          #ff3355;
    --pp-loss-bg:       rgba(255,51,85,.1);
    --pp-push:          #666;
    --pp-push-bg:       rgba(102,102,102,.12);
    --pp-pending:       #ffaa00;
    --pp-pending-bg:    rgba(255,170,0,.1);
    --pp-void:          #b94dff;
    --pp-void-bg:       rgba(185,77,255,.1);
    --pp-radius:        8px;
    --pp-radius-sm:     4px;
    --pp-shadow:        0 0 0 1px #1f1f1f, 0 4px 16px rgba(0,0,0,.6);
    --pp-shadow-hover:  0 0 0 1px var(--pp-accent), 0 0 24px rgba(0,255,136,.12), 0 8px 24px rgba(0,0,0,.6);
    --pp-shadow-card:   0 0 0 1px #1a1a1a;
    --pp-glow:          0 0 20px rgba(0,255,136,.15);
    --pp-featured-ring: 0 0 0 1px var(--pp-accent), 0 0 20px rgba(0,255,136,.3);
    --pp-stat-1:        linear-gradient(135deg,#00ff88,#00cc70);
    --pp-stat-2:        linear-gradient(135deg,#ffaa00,#ff7700);
    --pp-stat-3:        linear-gradient(135deg,#00e5ff,#0099cc);
    --pp-stat-4:        linear-gradient(135deg,#b94dff,#8800cc);
    --pp-stat-5:        linear-gradient(135deg,#ff3355,#cc0022);
    --pp-stat-6:        linear-gradient(135deg,#444,#222);
    --pp-stat-7:        linear-gradient(135deg,#00ff88,#00b35a);
}
.predictions-plugin-wrap[data-theme="neon-onyx"] .predictions-pick-card:hover,
.predictions-plugin-wrap[data-theme="neon-onyx"] .pp-card:hover {
    border-color: var(--pp-accent) !important;
    box-shadow: var(--pp-shadow-hover) !important;
}
.predictions-plugin-wrap[data-theme="neon-onyx"] .predictions-result-badge.win {
    color: var(--pp-win); border-color: var(--pp-win);
    text-shadow: 0 0 8px var(--pp-win); box-shadow: 0 0 12px rgba(0,255,136,.2);
}
.predictions-plugin-wrap[data-theme="neon-onyx"] .predictions-result-badge.loss {
    color: var(--pp-loss); border-color: var(--pp-loss);
    text-shadow: 0 0 8px var(--pp-loss);
}

/* ── 3. AZURE MIST ──────────────────────────────────────────── */
.predictions-plugin-wrap[data-theme="azure-mist"] {
    --pp-bg:            #f0f7ff;
    --pp-bg-card:       #ffffff;
    --pp-bg-card-hover: #e8f4fd;
    --pp-bg-input:      #f8fbff;
    --pp-border:        #bfdbfe;
    --pp-border-strong: #93c5fd;
    --pp-text:          #0c2d4e;
    --pp-text-muted:    #3b6ea0;
    --pp-text-faint:    #64a0d4;
    --pp-accent:        #0284c7;
    --pp-accent-2:      #0369a1;
    --pp-accent-soft:   #e0f2fe;
    --pp-win:           #059669;
    --pp-win-bg:        #d1fae5;
    --pp-loss:          #dc2626;
    --pp-loss-bg:       #fee2e2;
    --pp-shadow:        0 2px 12px rgba(2,132,199,.08), 0 1px 4px rgba(2,132,199,.05);
    --pp-shadow-hover:  0 8px 28px rgba(2,132,199,.14), 0 4px 10px rgba(2,132,199,.08);
    --pp-shadow-card:   0 1px 4px rgba(2,132,199,.06);
    --pp-stat-1:        linear-gradient(135deg,#0ea5e9,#0284c7);
    --pp-stat-2:        linear-gradient(135deg,#38bdf8,#0ea5e9);
    --pp-stat-3:        linear-gradient(135deg,#059669,#047857);
    --pp-stat-4:        linear-gradient(135deg,#6366f1,#4f46e5);
    --pp-stat-5:        linear-gradient(135deg,#0284c7,#0369a1);
    --pp-stat-6:        linear-gradient(135deg,#3b6ea0,#1e3a5f);
    --pp-stat-7:        linear-gradient(135deg,#22d3ee,#0891b2);
}

/* ── 4. TEAL MIST ───────────────────────────────────────────── */
.predictions-plugin-wrap[data-theme="teal-mist"] {
    --pp-bg:            #f0fdf9;
    --pp-bg-card:       #ffffff;
    --pp-bg-card-hover: #ccfbf1;
    --pp-bg-input:      #f0fdf9;
    --pp-border:        #99f6e4;
    --pp-border-strong: #5eead4;
    --pp-text:          #042f2e;
    --pp-text-muted:    #0f766e;
    --pp-text-faint:    #14b8a6;
    --pp-accent:        #0d9488;
    --pp-accent-2:      #0f766e;
    --pp-accent-soft:   #ccfbf1;
    --pp-win:           #059669;
    --pp-win-bg:        #d1fae5;
    --pp-shadow:        0 2px 12px rgba(13,148,136,.08);
    --pp-shadow-hover:  0 8px 28px rgba(13,148,136,.15);
    --pp-shadow-card:   0 1px 4px rgba(13,148,136,.06);
    --pp-stat-1:        linear-gradient(135deg,#0d9488,#0f766e);
    --pp-stat-2:        linear-gradient(135deg,#f59e0b,#d97706);
    --pp-stat-3:        linear-gradient(135deg,#10b981,#059669);
    --pp-stat-4:        linear-gradient(135deg,#14b8a6,#0d9488);
    --pp-stat-5:        linear-gradient(135deg,#6ee7b7,#34d399);
    --pp-stat-6:        linear-gradient(135deg,#0f766e,#134e4a);
    --pp-stat-7:        linear-gradient(135deg,#0891b2,#0369a1);
}

/* ── 5. MERIDIAN BLUE ───────────────────────────────────────── */
.predictions-plugin-wrap[data-theme="meridian-blue"] {
    --pp-bg:            #0c1f3c;
    --pp-bg-card:       #112240;
    --pp-bg-card-hover: #162d53;
    --pp-bg-input:      #0e2347;
    --pp-border:        #1e3a5f;
    --pp-border-strong: #2d5480;
    --pp-text:          #ccd6f6;
    --pp-text-muted:    #8892b0;
    --pp-text-faint:    #4a6080;
    --pp-accent:        #64ffda;
    --pp-accent-2:      #00d4aa;
    --pp-accent-soft:   rgba(100,255,218,.08);
    --pp-accent-text:   #0c1f3c;
    --pp-win:           #64ffda;
    --pp-win-bg:        rgba(100,255,218,.12);
    --pp-loss:          #ff6b6b;
    --pp-loss-bg:       rgba(255,107,107,.12);
    --pp-push:          #8892b0;
    --pp-push-bg:       rgba(136,146,176,.12);
    --pp-pending:       #ffd700;
    --pp-pending-bg:    rgba(255,215,0,.1);
    --pp-void:          #c792ea;
    --pp-void-bg:       rgba(199,146,234,.1);
    --pp-shadow:        0 4px 16px rgba(0,0,0,.4);
    --pp-shadow-hover:  0 0 0 1px rgba(100,255,218,.2), 0 12px 32px rgba(0,0,0,.5);
    --pp-shadow-card:   0 2px 8px rgba(0,0,0,.3);
    --pp-featured-ring: 0 0 0 1px var(--pp-accent);
    --pp-stat-1:        linear-gradient(135deg,#ff7a35,#e85500);
    --pp-stat-2:        linear-gradient(135deg,#ffd700,#f59e0b);
    --pp-stat-3:        linear-gradient(135deg,#64ffda,#00b386);
    --pp-stat-4:        linear-gradient(135deg,#c792ea,#8b5cf6);
    --pp-stat-5:        linear-gradient(135deg,#ff6b6b,#dc2626);
    --pp-stat-6:        linear-gradient(135deg,#8892b0,#4a6080);
    --pp-stat-7:        linear-gradient(135deg,#38bdf8,#0284c7);
}
.predictions-plugin-wrap[data-theme="meridian-blue"] .predictions-pick-card:hover {
    border-color: rgba(100,255,218,.3) !important;
}

/* ── 6. SOLAR DUSK ──────────────────────────────────────────── */
.predictions-plugin-wrap[data-theme="solar-dusk"] {
    --pp-bg:            #12001e;
    --pp-bg-card:       #1c0a2e;
    --pp-bg-card-hover: #261040;
    --pp-bg-input:      #1a0826;
    --pp-border:        #3d1a5e;
    --pp-border-strong: #5a2585;
    --pp-text:          #fde8d0;
    --pp-text-muted:    #c4a0e0;
    --pp-text-faint:    #8b5ea0;
    --pp-accent:        #f97316;
    --pp-accent-2:      #ea580c;
    --pp-accent-soft:   rgba(249,115,22,.12);
    --pp-accent-text:   #ffffff;
    --pp-win:           #4ade80;
    --pp-win-bg:        rgba(74,222,128,.12);
    --pp-loss:          #f43f5e;
    --pp-loss-bg:       rgba(244,63,94,.12);
    --pp-push:          #c4a0e0;
    --pp-push-bg:       rgba(196,160,224,.1);
    --pp-pending:       #fbbf24;
    --pp-pending-bg:    rgba(251,191,36,.1);
    --pp-void:          #a855f7;
    --pp-void-bg:       rgba(168,85,247,.15);
    --pp-shadow:        0 4px 20px rgba(249,115,22,.08), 0 2px 8px rgba(0,0,0,.5);
    --pp-shadow-hover:  0 0 0 1px rgba(249,115,22,.3), 0 12px 32px rgba(249,115,22,.15), 0 4px 16px rgba(0,0,0,.5);
    --pp-shadow-card:   0 2px 8px rgba(0,0,0,.4);
    --pp-glow:          0 0 40px rgba(249,115,22,.06);
    --pp-featured-ring: 0 0 0 2px var(--pp-accent), 0 0 24px rgba(249,115,22,.4);
    --pp-stat-1:        linear-gradient(135deg,#f97316,#ea580c);
    --pp-stat-2:        linear-gradient(135deg,#a855f7,#7c3aed);
    --pp-stat-3:        linear-gradient(135deg,#4ade80,#16a34a);
    --pp-stat-4:        linear-gradient(135deg,#fb923c,#f97316);
    --pp-stat-5:        linear-gradient(135deg,#f43f5e,#e11d48);
    --pp-stat-6:        linear-gradient(135deg,#8b5ea0,#5b2d7a);
    --pp-stat-7:        linear-gradient(135deg,#fbbf24,#f59e0b);
}
.predictions-plugin-wrap[data-theme="solar-dusk"] {
    background: radial-gradient(ellipse at top, #2d0a4e 0%, #12001e 60%);
}
.predictions-plugin-wrap[data-theme="solar-dusk"] .predictions-pick-card:hover {
    border-color: rgba(249,115,22,.4) !important;
}

/* ── 7. STARRY NIGHT ────────────────────────────────────────── */
.predictions-plugin-wrap[data-theme="starry-night"] {
    --pp-bg:            #03071a;
    --pp-bg-card:       #080f2a;
    --pp-bg-card-hover: #0d1535;
    --pp-bg-input:      #060c22;
    --pp-border:        #141f40;
    --pp-border-strong: #1e2d5a;
    --pp-text:          #e2e8ff;
    --pp-text-muted:    #818cf8;
    --pp-text-faint:    #4c5480;
    --pp-accent:        #818cf8;
    --pp-accent-2:      #6366f1;
    --pp-accent-soft:   rgba(129,140,248,.1);
    --pp-accent-text:   #ffffff;
    --pp-win:           #34d399;
    --pp-win-bg:        rgba(52,211,153,.12);
    --pp-loss:          #f87171;
    --pp-loss-bg:       rgba(248,113,113,.12);
    --pp-push:          #818cf8;
    --pp-push-bg:       rgba(129,140,248,.1);
    --pp-pending:       #fbbf24;
    --pp-pending-bg:    rgba(251,191,36,.1);
    --pp-void:          #c084fc;
    --pp-void-bg:       rgba(192,132,252,.1);
    --pp-shadow:        0 4px 20px rgba(0,0,0,.6);
    --pp-shadow-hover:  0 0 0 1px rgba(129,140,248,.3), 0 0 32px rgba(129,140,248,.1), 0 12px 32px rgba(0,0,0,.7);
    --pp-shadow-card:   0 2px 8px rgba(0,0,0,.5);
    --pp-featured-ring: 0 0 0 1px var(--pp-accent), 0 0 32px rgba(129,140,248,.3);
    --pp-stat-1:        linear-gradient(135deg,#818cf8,#6366f1);
    --pp-stat-2:        linear-gradient(135deg,#fbbf24,#d97706);
    --pp-stat-3:        linear-gradient(135deg,#34d399,#059669);
    --pp-stat-4:        linear-gradient(135deg,#c084fc,#9333ea);
    --pp-stat-5:        linear-gradient(135deg,#f87171,#dc2626);
    --pp-stat-6:        linear-gradient(135deg,#4c5480,#1e2d5a);
    --pp-stat-7:        linear-gradient(135deg,#ff8c4a,#e85500);
}
.predictions-plugin-wrap[data-theme="starry-night"] {
    background: radial-gradient(ellipse at 20% 10%, rgba(99,102,241,.12) 0%, transparent 50%),
                radial-gradient(ellipse at 80% 80%, rgba(192,132,252,.08) 0%, transparent 40%),
                #03071a;
}

/* ── 8. PERPETUITY ──────────────────────────────────────────── */
.predictions-plugin-wrap[data-theme="perpetuity"] {
    --pp-bg:            #faf9f6;
    --pp-bg-card:       #ffffff;
    --pp-bg-card-hover: #f5f3ee;
    --pp-bg-input:      #faf9f6;
    --pp-border:        #e8e2d9;
    --pp-border-strong: #d4ccc0;
    --pp-text:          #1a1a1a;
    --pp-text-muted:    #6b6358;
    --pp-text-faint:    #a89e94;
    --pp-accent:        #c8a84b;
    --pp-accent-2:      #a8882b;
    --pp-accent-soft:   #fdf8ed;
    --pp-accent-text:   #1a1a1a;
    --pp-win:           #2d6a2d;
    --pp-win-bg:        #e8f5e8;
    --pp-loss:          #8b1a1a;
    --pp-loss-bg:       #fce8e8;
    --pp-push:          #6b6358;
    --pp-push-bg:       #f0ede8;
    --pp-pending:       #8b6914;
    --pp-pending-bg:    #fdf5dc;
    --pp-void:          #5a3e6e;
    --pp-void-bg:       #f0e8f8;
    --pp-radius:        4px;
    --pp-radius-sm:     2px;
    --pp-shadow:        0 1px 4px rgba(0,0,0,.08), 0 0 0 1px rgba(0,0,0,.04);
    --pp-shadow-hover:  0 4px 16px rgba(0,0,0,.1), 0 0 0 1px rgba(0,0,0,.06);
    --pp-shadow-card:   0 0 0 1px rgba(0,0,0,.06);
    --pp-stat-1:        linear-gradient(135deg,#c8a84b,#a8882b);
    --pp-stat-2:        linear-gradient(135deg,#8b6914,#6b4a0a);
    --pp-stat-3:        linear-gradient(135deg,#2d6a2d,#1a4a1a);
    --pp-stat-4:        linear-gradient(135deg,#5a3e6e,#3a1e4e);
    --pp-stat-5:        linear-gradient(135deg,#8b1a1a,#5a0a0a);
    --pp-stat-6:        linear-gradient(135deg,#6b6358,#4a423a);
    --pp-stat-7:        linear-gradient(135deg,#a8882b,#88681b);
}
.predictions-plugin-wrap[data-theme="perpetuity"] .predictions-pick-card { font-family: Georgia, 'Times New Roman', serif; }
.predictions-plugin-wrap[data-theme="perpetuity"] .predictions-pick-card:hover { border-color: var(--pp-border-strong) !important; }

/* ── 9. NOTEBOOK ─────────────────────────────────────────────── */
.predictions-plugin-wrap[data-theme="notebook"] {
    --pp-bg:            #fffef7;
    --pp-bg-card:       #fffff2;
    --pp-bg-card-hover: #fffde8;
    --pp-bg-input:      #fffff8;
    --pp-border:        #d4c89a;
    --pp-border-strong: #b8aa7a;
    --pp-text:          #1a1000;
    --pp-text-muted:    #5c4a1e;
    --pp-text-faint:    #9a8050;
    --pp-accent:        #1565c0;
    --pp-accent-2:      #0d47a1;
    --pp-accent-soft:   #e3f2fd;
    --pp-win:           #1b5e20;
    --pp-win-bg:        #e8f5e9;
    --pp-loss:          #b71c1c;
    --pp-loss-bg:       #ffebee;
    --pp-push:          #5c4a1e;
    --pp-push-bg:       #faf6e8;
    --pp-pending:       #e65100;
    --pp-pending-bg:    #fff3e0;
    --pp-void:          #4a148c;
    --pp-void-bg:       #f3e5f5;
    --pp-radius:        3px;
    --pp-radius-sm:     2px;
    --pp-shadow:        2px 2px 0 rgba(0,0,0,.06), 0 1px 3px rgba(0,0,0,.08);
    --pp-shadow-hover:  3px 3px 0 rgba(21,101,192,.15), 0 2px 8px rgba(0,0,0,.1);
    --pp-shadow-card:   1px 1px 0 rgba(0,0,0,.06);
    --pp-stat-1:        linear-gradient(135deg,#1565c0,#0d47a1);
    --pp-stat-2:        linear-gradient(135deg,#e65100,#bf360c);
    --pp-stat-3:        linear-gradient(135deg,#1b5e20,#2e7d32);
    --pp-stat-4:        linear-gradient(135deg,#4a148c,#6a1b9a);
    --pp-stat-5:        linear-gradient(135deg,#b71c1c,#c62828);
    --pp-stat-6:        linear-gradient(135deg,#5c4a1e,#795548);
    --pp-stat-7:        linear-gradient(135deg,#0277bd,#01579b);
}
.predictions-plugin-wrap[data-theme="notebook"] {
    background-image:
        repeating-linear-gradient(transparent, transparent 27px, rgba(180,210,255,.35) 27px, rgba(180,210,255,.35) 28px);
    background-size: 100% 28px;
    background-attachment: local;
}
.predictions-plugin-wrap[data-theme="notebook"] .predictions-pick-card {
    border-left: 4px solid #ef9a9a !important;
    box-shadow: 2px 2px 0 rgba(0,0,0,.06) !important;
}
.predictions-plugin-wrap[data-theme="notebook"] .predictions-pick-card.result-win  { border-left-color: var(--pp-win) !important; }
.predictions-plugin-wrap[data-theme="notebook"] .predictions-pick-card.result-loss { border-left-color: var(--pp-loss) !important; }

/* ── Glass (legacy) ─────────────────────────────────────────── */
.predictions-plugin-wrap[data-theme="glass"] {
    --pp-bg:            transparent;
    --pp-bg-card:       rgba(255,255,255,.1);
    --pp-bg-card-hover: rgba(255,255,255,.18);
    --pp-border:        rgba(255,255,255,.18);
    --pp-border-strong: rgba(255,255,255,.3);
    --pp-text:          #ffffff;
    --pp-text-muted:    rgba(255,255,255,.7);
    --pp-text-faint:    rgba(255,255,255,.4);
    --pp-accent:        #c084fc;
    --pp-accent-2:      #a855f7;
    --pp-accent-soft:   rgba(192,132,252,.15);
    --pp-shadow:        0 4px 24px rgba(0,0,0,.25);
    --pp-shadow-hover:  0 8px 32px rgba(0,0,0,.35);
    background: linear-gradient(135deg,#1a1a2e 0%,#16213e 50%,#0f3460 100%);
    border-radius: var(--pp-radius);
    padding: 24px;
}
.predictions-plugin-wrap[data-theme="glass"] .predictions-pick-card {
    backdrop-filter: blur(20px) saturate(180%);
    -webkit-backdrop-filter: blur(20px) saturate(180%);
}

/* ── Minimal (legacy) ───────────────────────────────────────── */
.predictions-plugin-wrap[data-theme="minimal"] {
    --pp-bg-card:      #ffffff;
    --pp-border:       #e5e7eb;
    --pp-radius:       6px;
    --pp-shadow:       none;
    --pp-shadow-hover: 0 1px 4px rgba(0,0,0,.1);
}

/* ── Gold Dark ─────────────────────────────────────────────────────────── */
.predictions-plugin-wrap[data-theme="gold-dark"] {
    --pp-bg:              #0a0900;
    --pp-bg-card:         #141200;
    --pp-bg-card-hover:   #1e1a00;
    --pp-bg-input:        #1a1700;
    --pp-border:          #2e2800;
    --pp-border-strong:   #4a3e00;
    --pp-text:            #f2e6b0;
    --pp-text-muted:      #b89a3a;
    --pp-text-faint:      #7a6520;
    --pp-accent:          #d4a017;
    --pp-accent-2:        #b8860b;
    --pp-accent-soft:     rgba(212,160,23,.12);
    --pp-accent-text:     #0a0900;
    --pp-win:             #22c55e;
    --pp-win-bg:          rgba(34,197,94,.12);
    --pp-loss:            #ef4444;
    --pp-loss-bg:         rgba(239,68,68,.12);
    --pp-push:            #d4a017;
    --pp-push-bg:         rgba(212,160,23,.10);
    --pp-pending:         #f59e0b;
    --pp-pending-bg:      rgba(245,158,11,.10);
    --pp-void:            #a78bfa;
    --pp-void-bg:         rgba(167,139,250,.10);
    --pp-radius:          14px;
    --pp-radius-sm:       8px;
    --pp-radius-xs:       6px;
    --pp-shadow:          0 2px 12px rgba(0,0,0,.5), 0 1px 4px rgba(0,0,0,.4);
    --pp-shadow-hover:    0 8px 32px rgba(0,0,0,.6), 0 0 20px rgba(212,160,23,.15);
    --pp-shadow-card:     0 1px 6px rgba(0,0,0,.4);
    --pp-glow:            0 0 24px rgba(212,160,23,.2);
    --pp-featured-ring:   0 0 0 2px var(--pp-accent), 0 0 16px rgba(212,160,23,.3);
}
.predictions-plugin-wrap[data-theme="gold-dark"] .predictions-pick-card:hover {
    box-shadow: var(--pp-shadow-hover);
    border-color: var(--pp-accent) !important;
}
.predictions-plugin-wrap[data-theme="gold-dark"] .predictions-pick-card.featured {
    border-color: var(--pp-accent) !important;
}

/* ═══════════════════════════════════════════════════════════
   RESET
   ═══════════════════════════════════════════════════════════ */
.predictions-plugin-wrap *, .predictions-plugin-wrap *::before, .predictions-plugin-wrap *::after { box-sizing: border-box; }

/* ═══════════════════════════════════════════════════════════
   FILTER BAR
   ═══════════════════════════════════════════════════════════ */
.predictions-filters {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-bottom: 24px;
    padding: 20px 24px;
    background: var(--pp-bg-card);
    border: 1px solid var(--pp-border);
    border-radius: var(--pp-radius);
    box-shadow: var(--pp-shadow);
}
.predictions-filter-main-row {
    display: flex; align-items: center; gap: 14px; width: 100%; flex-wrap: wrap;
}
.predictions-filter-group { display: flex; align-items: center; gap: 8px; }
.predictions-filter-group--search { flex: 1; min-width: 240px; }
.predictions-filter-search {
    width: 100%; padding: 10px 14px;
    border-radius: var(--pp-radius-sm);
    border: 1.5px solid var(--pp-border);
    background: var(--pp-bg-input);
    color: var(--pp-text); font-size: 14px; font-family: var(--pp-font);
    outline: none; transition: all var(--pp-transition);
}
.predictions-filter-search:focus {
    border-color: var(--pp-accent);
    box-shadow: 0 0 0 3px var(--pp-accent-soft);
}
.predictions-btn-advanced-toggle {
    padding: 10px 18px; border-radius: var(--pp-radius-sm);
    border: 1.5px solid var(--pp-border);
    background: var(--pp-bg); color: var(--pp-text);
    font-size: 13px; font-weight: 600; cursor: pointer;
    display: inline-flex; align-items: center; gap: 6px;
    font-family: var(--pp-font); transition: all var(--pp-transition);
}
.predictions-btn-advanced-toggle:hover { border-color: var(--pp-accent); background: var(--pp-accent-soft); color: var(--pp-accent); }
.predictions-btn-advanced-toggle.active { background: var(--pp-accent); border-color: var(--pp-accent); color: var(--pp-accent-text); }
.predictions-filter-group--wrap {
    display: flex; align-items: center; gap: 12px; width: 100%;
    border-bottom: 1px solid var(--pp-border); padding-bottom: 12px;
}
.predictions-filter-group--wrap:last-of-type { border-bottom: none; padding-bottom: 0; }
.predictions-filter-label {
    font-size: 11px; font-weight: 700; color: var(--pp-text-faint);
    text-transform: uppercase; letter-spacing: .08em; min-width: 60px; flex-shrink: 0;
}
.pill-container { display: flex; gap: 8px; overflow-x: auto; width: 100%; padding: 2px 0; -webkit-overflow-scrolling: touch; }
.pill-container::-webkit-scrollbar { height: 4px; }
.pill-container::-webkit-scrollbar-track { background: transparent; }
.pill-container::-webkit-scrollbar-thumb { background: var(--pp-border); border-radius: 4px; }
.predictions-filter-pill {
    padding: 6px 16px; border-radius: 20px;
    border: 1.5px solid var(--pp-border);
    background: var(--pp-bg); color: var(--pp-text-muted);
    font-size: 13px; font-weight: 600; cursor: pointer;
    transition: all var(--pp-transition); font-family: var(--pp-font);
    white-space: nowrap; display: inline-flex; align-items: center; gap: 4px;
}
.predictions-filter-pill:hover { border-color: var(--pp-accent); color: var(--pp-accent); background: var(--pp-accent-soft); }
.predictions-filter-pill.active { background: var(--pp-accent); border-color: var(--pp-accent); color: var(--pp-accent-text); }
.predictions-advanced-filters-panel {
    background: var(--pp-bg-card-hover); border: 1px solid var(--pp-border);
    border-radius: var(--pp-radius-sm); padding: 20px; margin-top: 8px; width: 100%;
    animation: pp-fade-in .2s ease both;
}
.advanced-filters-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 16px; }
.predictions-filter-select {
    width: 100%; padding: 8px 12px; border-radius: var(--pp-radius-sm);
    border: 1.5px solid var(--pp-border); background: var(--pp-bg-input);
    color: var(--pp-text); font-size: 13px; cursor: pointer;
    font-family: var(--pp-font); outline: none; transition: all var(--pp-transition);
}
.predictions-filter-select:focus { border-color: var(--pp-accent); }
.advanced-panel-actions {
    display: flex; justify-content: flex-end; margin-top: 16px;
    padding-top: 14px; border-top: 1px solid var(--pp-border);
}
.predictions-filter-clear {
    padding: 8px 18px; border-radius: var(--pp-radius-sm);
    border: 1.5px solid var(--pp-border); background: transparent;
    color: var(--pp-text-muted); font-size: 13px; font-weight: 600;
    cursor: pointer; font-family: var(--pp-font); transition: all var(--pp-transition);
}
.predictions-filter-clear:hover { border-color: var(--pp-loss); color: var(--pp-loss); background: var(--pp-loss-bg); }
.predictions-layout-btns { margin-left: auto; display: flex; gap: 6px; flex-shrink: 0; }
.predictions-layout-btn {
    width: 38px; height: 38px; border: 1.5px solid var(--pp-border);
    border-radius: var(--pp-radius-sm); background: var(--pp-bg); cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    color: var(--pp-text-muted); transition: all var(--pp-transition); font-size: 16px;
}
.predictions-layout-btn:hover, .predictions-layout-btn.active { border-color: var(--pp-accent); color: var(--pp-accent); background: var(--pp-accent-soft); }

/* ═══════════════════════════════════════════════════════════
   GRID + LOADER
   ═══════════════════════════════════════════════════════════ */
.predictions-grid-container { position: relative; }
.predictions-grid-loader {
    position: absolute; inset: 0; background: rgba(255,255,255,.4);
    z-index: 100; display: flex; align-items: center; justify-content: center;
    border-radius: var(--pp-radius); backdrop-filter: blur(2px);
}
[data-theme="dark"] .predictions-grid-loader,
[data-theme="neon-onyx"] .predictions-grid-loader,
[data-theme="meridian-blue"] .predictions-grid-loader,
[data-theme="solar-dusk"] .predictions-grid-loader,
[data-theme="starry-night"] .predictions-grid-loader { background: rgba(0,0,0,.4); }
.pp-spinner {
    width: 44px; height: 44px;
    border: 4px solid var(--pp-border); border-top-color: var(--pp-accent);
    border-radius: 50%; animation: pp-spin .6s linear infinite;
}
.predictions-grid { display: grid; gap: 16px; grid-template-columns: 1fr; }
.predictions-grid[data-layout="grid-2"] { grid-template-columns: repeat(2,1fr); }
.predictions-grid[data-layout="grid-3"] { grid-template-columns: repeat(3,1fr); }
.predictions-grid[data-layout="list"]   { grid-template-columns: 1fr; }
@media (max-width: 768px) {
    .predictions-grid[data-layout="grid-2"],
    .predictions-grid[data-layout="grid-3"] { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════
   PICK CARD
   ═══════════════════════════════════════════════════════════ */
.predictions-pick-card {
    background: var(--pp-bg-card);
    border: 1px solid var(--pp-border);
    border-radius: var(--pp-radius);
    padding: 20px;
    box-shadow: var(--pp-shadow);
    transition: box-shadow var(--pp-transition), transform var(--pp-transition), border-color var(--pp-transition);
    display: flex; flex-direction: column; gap: 12px;
    position: relative; overflow: hidden; cursor: default;
    animation: pp-fade-in .3s ease both;
}
.predictions-pick-card:hover {
    box-shadow: var(--pp-shadow-hover);
    transform: translateY(-2px);
    border-color: var(--pp-accent);
}
.predictions-pick-card.result-win   { border-left: 4px solid var(--pp-win); }
.predictions-pick-card.result-loss  { border-left: 4px solid var(--pp-loss); }
.predictions-pick-card.result-push  { border-left: 4px solid var(--pp-push); }
.predictions-pick-card.result-void  { border-left: 4px solid var(--pp-void); }
.predictions-pick-card.result-pending { border-left: 4px solid var(--pp-pending); }
.predictions-pick-card:nth-child(1) { animation-delay: .02s; }
.predictions-pick-card:nth-child(2) { animation-delay: .05s; }
.predictions-pick-card:nth-child(3) { animation-delay: .08s; }
.predictions-pick-card:nth-child(4) { animation-delay: .11s; }
.predictions-pick-card:nth-child(5) { animation-delay: .14s; }
.predictions-pick-card:nth-child(6) { animation-delay: .17s; }

/* List layout */
.predictions-grid[data-layout="list"] .predictions-pick-card {
    flex-direction: row; align-items: center; gap: 16px; padding: 14px 20px;
}
.predictions-grid[data-layout="list"] .predictions-pick-body { flex: 1; }
.predictions-grid[data-layout="list"] .predictions-pick-notes { display: none; }
.predictions-grid[data-layout="list"] .predictions-pick-meta { flex-direction: row; flex-wrap: wrap; gap: 8px; }

/* Card header */
.predictions-pick-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.predictions-pick-sport-badge {
    display: inline-flex; align-items: center; gap: 4px;
    font-size: 11px; font-weight: 700; color: var(--pp-accent);
    background: var(--pp-accent-soft); padding: 3px 10px; border-radius: 20px;
    text-transform: uppercase; letter-spacing: .05em; white-space: nowrap;
}
.predictions-pick-category {
    font-size: 11px; color: var(--pp-text-muted);
    background: var(--pp-bg-card-hover); padding: 2px 8px;
    border-radius: 20px; border: 1px solid var(--pp-border);
}
.predictions-pick-matchup {
    display: flex; align-items: center; justify-content: space-between; gap: 8px;
}
.predictions-pick-team {
    font-size: 15px; font-weight: 700; color: var(--pp-text);
    text-align: center; flex: 1; line-height: 1.2;
}
.predictions-pick-vs {
    font-size: 11px; color: var(--pp-text-muted); font-weight: 600;
    text-transform: uppercase; letter-spacing: .1em; flex-shrink: 0;
    background: var(--pp-bg-card-hover); padding: 4px 8px;
    border-radius: 6px; border: 1px solid var(--pp-border);
}
.predictions-pick-team-sub { font-size: 11px; color: var(--pp-text-muted); font-weight: 400; }
.predictions-pick-detail-row {
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
    padding: 10px 12px; background: var(--pp-bg-card-hover);
    border-radius: var(--pp-radius-sm); border: 1px solid var(--pp-border);
}
.predictions-pick-on   { font-size: 14px; font-weight: 700; color: var(--pp-accent); }
.predictions-pick-line { font-size: 13px; color: var(--pp-text-muted); font-weight: 500; }
.predictions-pick-odds { margin-left: auto; font-size: 16px; font-weight: 800; color: var(--pp-text); }
.predictions-pick-units {
    font-size: 12px; color: var(--pp-text-muted); padding: 2px 8px;
    background: var(--pp-bg-card); border: 1px solid var(--pp-border);
    border-radius: 6px; font-weight: 600;
}
.predictions-pick-meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.predictions-pick-date { font-size: 12px; color: var(--pp-text-muted); display: flex; align-items: center; gap: 4px; }
.predictions-pick-tags { display: flex; gap: 4px; flex-wrap: wrap; }
.predictions-pick-tag {
    font-size: 11px; color: var(--pp-text-muted);
    background: var(--pp-bg-card-hover); border: 1px solid var(--pp-border);
    border-radius: 20px; padding: 2px 8px;
}

/* Confidence */
.predictions-confidence {
    display: inline-flex; align-items: center; gap: 3px;
    font-size: 11px; font-weight: 700; border-radius: 6px; padding: 3px 8px; border: 1.5px solid;
}
.predictions-confidence.low    { color: var(--pp-badge-low);    border-color: var(--pp-badge-low);    background: rgba(148,163,184,.1); }
.predictions-confidence.medium { color: var(--pp-badge-medium); border-color: var(--pp-badge-medium); background: rgba(59,130,246,.08); }
.predictions-confidence.high   { color: var(--pp-badge-high);   border-color: var(--pp-badge-high);   background: rgba(245,158,11,.1); }
.predictions-confidence.max    { color: var(--pp-badge-max);    border-color: var(--pp-badge-max);    background: rgba(239,68,68,.1); }

/* Result badge */
.predictions-result-badge {
    display: inline-flex; align-items: center; gap: 4px;
    font-size: 12px; font-weight: 700; padding: 4px 12px; border-radius: 20px;
    border: 1.5px solid; letter-spacing: .03em; text-transform: uppercase; margin-left: auto;
}
.predictions-result-badge.win     { color: var(--pp-win);     border-color: var(--pp-win);     background: var(--pp-win-bg); }
.predictions-result-badge.loss    { color: var(--pp-loss);    border-color: var(--pp-loss);    background: var(--pp-loss-bg); }
.predictions-result-badge.push    { color: var(--pp-push);    border-color: var(--pp-push);    background: var(--pp-push-bg); }
.predictions-result-badge.pending { color: var(--pp-pending); border-color: var(--pp-pending); background: var(--pp-pending-bg); }
.predictions-result-badge.void    { color: var(--pp-void);    border-color: var(--pp-void);    background: var(--pp-void-bg); }
.predictions-result-score { font-size: 11px; color: var(--pp-text-muted); font-weight: 500; }

/* Notes */
.predictions-pick-notes {
    font-size: 13px; color: var(--pp-text-muted); line-height: 1.6;
    padding-top: 8px; border-top: 1px solid var(--pp-border);
}
.predictions-pick-notes-toggle {
    background: none; border: none; color: var(--pp-accent);
    font-size: 12px; font-weight: 600; cursor: pointer; padding: 0;
    font-family: var(--pp-font); text-decoration: underline;
}

/* ═══════════════════════════════════════════════════════════
   ROI WIDGET
   ═══════════════════════════════════════════════════════════ */
.predictions-roi-widget {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 12px; margin: 16px 0;
}
.predictions-roi-card {
    background: var(--pp-bg-card); border: 1px solid var(--pp-border);
    border-radius: var(--pp-radius); padding: 16px 12px;
    text-align: center; box-shadow: var(--pp-shadow);
}
.predictions-roi-value  { font-size: 28px; font-weight: 800; color: var(--pp-text); display: block; }
.predictions-roi-value.positive { color: var(--pp-win); }
.predictions-roi-value.negative { color: var(--pp-loss); }
.predictions-roi-label  { font-size: 11px; color: var(--pp-text-muted); font-weight: 600; text-transform: uppercase; letter-spacing: .06em; margin-top: 4px; display: block; }

/* ═══════════════════════════════════════════════════════════
   PAYWALL
   ═══════════════════════════════════════════════════════════ */
.predictions-paywall {
    text-align: center; padding: 40px 24px;
    background: var(--pp-bg-card); border: 1.5px dashed var(--pp-border);
    border-radius: var(--pp-radius); margin: 16px 0;
}
.predictions-paywall h3 { font-size: 18px; color: var(--pp-text); margin: 0 0 8px; }
.predictions-paywall p  { font-size: 14px; color: var(--pp-text-muted); margin: 0 0 20px; }
.predictions-paywall-btn {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 12px 28px; background: var(--pp-accent); color: var(--pp-accent-text) !important;
    border-radius: var(--pp-radius-sm); font-size: 14px; font-weight: 700;
    text-decoration: none; transition: opacity var(--pp-transition), transform var(--pp-transition);
}
.predictions-paywall-btn:hover { opacity: .9; transform: translateY(-1px); text-decoration: none; }

/* ═══════════════════════════════════════════════════════════
   EMPTY STATE
   ═══════════════════════════════════════════════════════════ */
.predictions-empty { text-align: center; padding: 60px 24px; color: var(--pp-text-muted); }
.predictions-empty-icon { font-size: 48px; display: block; margin-bottom: 12px; opacity: .5; }

/* ═══════════════════════════════════════════════════════════
   PACKAGES / PRICING
   ═══════════════════════════════════════════════════════════ */
.predictions-packages-grid {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 20px; margin: 16px 0;
}
.predictions-package-card {
    background: var(--pp-bg-card); border: 1.5px solid var(--pp-border);
    border-radius: var(--pp-radius); padding: 24px; box-shadow: var(--pp-shadow);
    display: flex; flex-direction: column; gap: 12px;
    transition: box-shadow var(--pp-transition), transform var(--pp-transition), border-color var(--pp-transition);
}
.predictions-package-card:hover { box-shadow: var(--pp-shadow-hover); transform: translateY(-3px); border-color: var(--pp-accent); }
.predictions-package-card.featured { border-color: var(--pp-accent); border-width: 2px; box-shadow: var(--pp-featured-ring); }
.predictions-package-name  { font-size: 18px; font-weight: 700; color: var(--pp-text); }
.predictions-package-price { font-size: 32px; font-weight: 800; color: var(--pp-accent); }
.predictions-price-interval { font-size: 14px; font-weight: 400; color: var(--pp-text-muted); }
.predictions-price-free { font-size: 24px; font-weight: 800; color: var(--pp-win); }
.predictions-package-desc  { font-size: 13px; color: var(--pp-text-muted); line-height: 1.5; }
.predictions-package-btn {
    display: block; text-align: center; padding: 12px;
    background: var(--pp-accent); color: var(--pp-accent-text) !important;
    border-radius: var(--pp-radius-sm); font-weight: 700; text-decoration: none;
    transition: opacity var(--pp-transition); margin-top: auto;
    font-family: var(--pp-font); border: none; cursor: pointer; font-size: 14px;
}
.predictions-package-btn:hover { opacity: .85; text-decoration: none; }

/* ── New package template overrides — inherit from wrap vars ── */
.pp-pricing-wrap { --pp-ac: var(--pp-accent); --pp-ac2: var(--pp-accent-2); }
.pp-btn-stripe, .pp-btn-fallback { background: var(--pp-accent) !important; color: var(--pp-accent-text) !important; }
.pp-btn-free, .pp-btn-view       { background: var(--pp-win) !important; color: #fff !important; }
.pp-btn-manage                   { background: var(--pp-text-muted) !important; color: #fff !important; }
.pp-btn-renew                    { background: var(--pp-accent) !important; color: var(--pp-accent-text) !important; }
.pp-card                         { background: var(--pp-bg-card) !important; border-color: var(--pp-border) !important; color: var(--pp-text); }
.pp-card.pp-featured             { box-shadow: var(--pp-featured-ring) !important; border-color: var(--pp-accent) !important; }
.pp-name                         { color: var(--pp-text); }
.pp-price                        { color: var(--pp-accent); }
.pp-desc                         { color: var(--pp-text-muted); }
.pp-features                     { color: var(--pp-text); }
.pp-features li::before          { color: var(--pp-accent); }

/* ═══════════════════════════════════════════════════════════
   PAGINATION
   ═══════════════════════════════════════════════════════════ */
.predictions-pagination { display: flex; justify-content: center; gap: 6px; margin-top: 24px; flex-wrap: wrap; }
.predictions-page-btn {
    padding: 7px 14px; border: 1.5px solid var(--pp-border);
    border-radius: var(--pp-radius-sm); background: var(--pp-bg-card);
    color: var(--pp-text); cursor: pointer; font-size: 13px; font-weight: 500;
    transition: all var(--pp-transition); font-family: var(--pp-font);
}
.predictions-page-btn:hover, .predictions-page-btn.active { background: var(--pp-accent); border-color: var(--pp-accent); color: var(--pp-accent-text); }
.predictions-page-btn:disabled { opacity: .4; cursor: not-allowed; }

/* ═══════════════════════════════════════════════════════════
   LOADING
   ═══════════════════════════════════════════════════════════ */
.predictions-loading { display: flex; justify-content: center; align-items: center; padding: 60px 24px; color: var(--pp-text-muted); gap: 10px; }
.predictions-spinner { width: 20px; height: 20px; border: 2.5px solid var(--pp-border); border-top-color: var(--pp-accent); border-radius: 50%; animation: pp-spin .6s linear infinite; }

/* ═══════════════════════════════════════════════════════════
   ANIMATIONS
   ═══════════════════════════════════════════════════════════ */
@keyframes pp-spin { to { transform: rotate(360deg); } }
@keyframes pp-fade-in { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce) {
    .predictions-pick-card { animation: none; transition: none; }
    .predictions-pick-card:hover { transform: none; }
}

/* ═══════════════════════════════════════════════════════════
   THEME SWITCHER DOTS
   ═══════════════════════════════════════════════════════════ */
.predictions-theme-switcher {
    display: flex; align-items: center; gap: 10px;
    margin-bottom: 16px; flex-wrap: wrap;
}
.predictions-theme-switcher-label {
    font-size: 11px; font-weight: 700; color: var(--pp-text-faint);
    text-transform: uppercase; letter-spacing: .08em; flex-shrink: 0;
}
.predictions-theme-switcher-dots {
    display: flex; gap: 6px; flex-wrap: wrap; align-items: center;
}
.predictions-theme-btn {
    width: 22px; height: 22px; border-radius: 50%;
    border: 2px solid transparent; cursor: pointer;
    transition: transform var(--pp-transition), box-shadow var(--pp-transition), border-color var(--pp-transition);
    padding: 0; flex-shrink: 0;
    box-shadow: 0 1px 3px rgba(0,0,0,.2);
}
.predictions-theme-btn:hover {
    transform: scale(1.2);
    box-shadow: 0 2px 8px rgba(0,0,0,.25);
}
.predictions-theme-btn.active {
    border-color: #fff;
    box-shadow: 0 0 0 3px var(--dot-color, #e85500), 0 2px 8px rgba(0,0,0,.2);
    transform: scale(1.15);
}

/* ═══════════════════════════════════════════════════════════
   CAPPER DASHBOARD — token-based, works in any theme
   ═══════════════════════════════════════════════════════════ */
.predictions-plugin-wrap .predictions-capper {
    max-width: 100%;
    margin: 0;
    padding: 0;
    color: var(--pp-text);
}

.predictions-plugin-wrap .predictions-capper-section {
    background: var(--pp-bg-card);
    border: 1px solid var(--pp-border);
    box-shadow: var(--pp-shadow);
    color: var(--pp-text);
}
.predictions-plugin-wrap .predictions-capper-section-title { color: var(--pp-text); }
.predictions-plugin-wrap .predictions-capper-section-title::after { background: var(--pp-accent); }
.predictions-plugin-wrap .predictions-capper-section-header { border-bottom-color: var(--pp-border); }

.predictions-plugin-wrap .predictions-field label        { color: var(--pp-text-muted); }
.predictions-plugin-wrap .predictions-field input,
.predictions-plugin-wrap .predictions-field select,
.predictions-plugin-wrap .predictions-field textarea {
    border-color: var(--pp-border-strong);
    background: var(--pp-bg-input);
    color: var(--pp-text);
}
.predictions-plugin-wrap .predictions-field input:focus,
.predictions-plugin-wrap .predictions-field select:focus,
.predictions-plugin-wrap .predictions-field textarea:focus {
    border-color: var(--pp-accent);
    background: var(--pp-bg-card);
    box-shadow: 0 0 0 4px var(--pp-accent-soft);
}
.predictions-plugin-wrap .predictions-checkbox-group {
    background: var(--pp-bg-card-hover); border-color: var(--pp-border);
}
.predictions-plugin-wrap .predictions-checkbox-label { color: var(--pp-text); }
.predictions-plugin-wrap .predictions-checkbox-label input[type="checkbox"] { accent-color: var(--pp-accent); }

.predictions-plugin-wrap .predictions-btn--primary {
    background: linear-gradient(135deg, var(--pp-accent), var(--pp-accent-2));
    color: var(--pp-accent-text);
    box-shadow: 0 4px 12px var(--pp-accent-soft);
}
.predictions-plugin-wrap .predictions-btn--primary:hover:not(:disabled) {
    background: linear-gradient(135deg, var(--pp-accent-2), var(--pp-accent));
}
.predictions-plugin-wrap .predictions-btn--outline {
    background: var(--pp-bg-card); color: var(--pp-accent); border-color: var(--pp-border);
}
.predictions-plugin-wrap .predictions-btn--outline:hover:not(:disabled) {
    background: var(--pp-accent-soft); border-color: var(--pp-accent);
}
.predictions-plugin-wrap .predictions-btn--ghost { background: transparent; color: var(--pp-text-muted); border-color: var(--pp-border); }
.predictions-plugin-wrap .predictions-btn--ghost:hover:not(:disabled) { background: var(--pp-bg-card-hover); }
.predictions-plugin-wrap .predictions-btn--danger { background: var(--pp-bg-card); color: var(--pp-loss); border-color: var(--pp-loss-bg); }
.predictions-plugin-wrap .predictions-btn--danger:hover:not(:disabled) { background: var(--pp-loss-bg); border-color: var(--pp-loss); }

.predictions-plugin-wrap .predictions-capper-table th,
.predictions-plugin-wrap .predictions-capper-table td { border-bottom-color: var(--pp-border); }
.predictions-plugin-wrap .predictions-capper-table thead th { background: var(--pp-bg-card-hover); color: var(--pp-text-muted); border-bottom-color: var(--pp-border-strong); }
.predictions-plugin-wrap .predictions-capper-table tbody tr:hover { background: var(--pp-bg-card-hover); }
.predictions-plugin-wrap .predictions-table-wrap { border-color: var(--pp-border); }
.predictions-plugin-wrap .predictions-teams { color: var(--pp-text); }
.predictions-plugin-wrap .predictions-sport-badge { background: var(--pp-accent-soft); color: var(--pp-accent); }
.predictions-plugin-wrap .predictions-score { color: var(--pp-text-muted); }

.predictions-plugin-wrap .predictions-badge--win  { background: var(--pp-win-bg);     color: var(--pp-win);  border-color: var(--pp-win); }
.predictions-plugin-wrap .predictions-badge--loss { background: var(--pp-loss-bg);    color: var(--pp-loss); border-color: var(--pp-loss); }
.predictions-plugin-wrap .predictions-badge--push { background: var(--pp-push-bg);    color: var(--pp-push); border-color: var(--pp-push); }
.predictions-plugin-wrap .predictions-badge--void { background: var(--pp-void-bg);    color: var(--pp-void); border-color: var(--pp-void); }
.predictions-plugin-wrap .predictions-badge--pending { background: var(--pp-pending-bg); color: var(--pp-pending); border-color: var(--pp-pending); }

.predictions-plugin-wrap .predictions-grade-btn--win  { color: var(--pp-win);  border-color: var(--pp-win-bg);  background: var(--pp-bg-card); }
.predictions-plugin-wrap .predictions-grade-btn--win:hover:not(:disabled)  { background: var(--pp-win-bg);  border-color: var(--pp-win); }
.predictions-plugin-wrap .predictions-grade-btn--loss { color: var(--pp-loss); border-color: var(--pp-loss-bg); background: var(--pp-bg-card); }
.predictions-plugin-wrap .predictions-grade-btn--loss:hover:not(:disabled) { background: var(--pp-loss-bg); border-color: var(--pp-loss); }
.predictions-plugin-wrap .predictions-grade-btn--push { color: var(--pp-push); border-color: var(--pp-push-bg); background: var(--pp-bg-card); }
.predictions-plugin-wrap .predictions-grade-btn--push:hover:not(:disabled) { background: var(--pp-push-bg); border-color: var(--pp-push); }

.predictions-plugin-wrap .predictions-draft-status { color: var(--pp-text-muted); }
.predictions-plugin-wrap .predictions-field-hint   { color: var(--pp-text-faint); }

/* Stat cards inherit card background and border from theme */
.predictions-plugin-wrap .predictions-stat-card {
    background: var(--pp-bg-card);
    border: 1px solid var(--pp-border);
    box-shadow: var(--pp-shadow);
    color: var(--pp-text);
}
.predictions-plugin-wrap .predictions-stat-label { color: var(--pp-text-muted); }

/* =============================================================================
   v3.4 — Picks page polish: logos, confidence, list view, filters, locked, mobile
   ============================================================================= */

/* ── Page breathing room so cards don't hug the themed background ─────────── */
.predictions-plugin-wrap { padding: 20px; box-sizing: border-box; }
@media (max-width: 768px) { .predictions-plugin-wrap { padding: 12px; } }
@media (max-width: 480px) { .predictions-plugin-wrap { padding: 8px; } }

/* ── Team logos on pick cards ────────────────────────────────────────────── */
.predictions-pick-team {
    display: flex; flex-direction: column; align-items: center; gap: 6px;
}
.predictions-pick-logo {
    width: 46px; height: 46px; object-fit: contain;
    border-radius: 8px; flex-shrink: 0;
    filter: drop-shadow(0 1px 2px rgba(0,0,0,.12));
}
.predictions-pick-team-name { font-size: 15px; font-weight: 700; color: var(--pp-text); line-height: 1.2; }

/* ── Confidence: alias very_high → max, and make it sit neatly in the row ─── */
.predictions-confidence.very_high { color: var(--pp-badge-max); border-color: var(--pp-badge-max); background: rgba(239,68,68,.1); }
.predictions-pick-detail-row { row-gap: 8px; }
.predictions-pick-units { margin-left: 0; }
.predictions-confidence { margin-left: 0; }

/* ── Improved locked / paywall visual ────────────────────────────────────── */
.predictions-paywall {
    position: relative;
    background: linear-gradient(160deg, var(--pp-bg-card), var(--pp-bg-card-hover));
    border: 1.5px solid var(--pp-border);
    overflow: hidden;
}
.predictions-paywall::before {
    content: ''; position: absolute; inset: 0;
    background:
        radial-gradient(circle at 20% 0%, var(--pp-accent-soft), transparent 45%),
        radial-gradient(circle at 90% 100%, var(--pp-accent-soft), transparent 45%);
    opacity: .6; pointer-events: none;
}
.predictions-paywall > * { position: relative; z-index: 1; }
.predictions-lock-badge {
    width: 52px; height: 52px; margin: 0 auto 14px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 50%; font-size: 24px;
    background: var(--pp-accent); color: var(--pp-accent-text);
    box-shadow: 0 6px 18px rgba(0,0,0,.18), 0 0 0 6px var(--pp-accent-soft);
    animation: pp-lock-pop .4s cubic-bezier(.34,1.56,.64,1) both;
}
@keyframes pp-lock-pop { from { transform: scale(.4); opacity: 0; } to { transform: scale(1); opacity: 1; } }

/* ═══════════════════════════════════════════════════════════
   LIST VIEW — neat horizontal cards with visible analysis
   ═══════════════════════════════════════════════════════════ */
.predictions-grid[data-layout="list"] .predictions-pick-card {
    flex-direction: row; flex-wrap: wrap; align-items: center;
    gap: 14px 18px; padding: 16px 20px;
}
.predictions-grid[data-layout="list"] .predictions-pick-header {
    flex: 0 0 auto; flex-direction: column; align-items: flex-start;
    justify-content: center; gap: 6px; min-width: 90px;
}
.predictions-grid[data-layout="list"] .predictions-result-badge { margin-left: 0; }
.predictions-grid[data-layout="list"] .predictions-pick-matchup {
    flex: 1 1 220px; justify-content: center; gap: 14px;
}
.predictions-grid[data-layout="list"] .predictions-pick-logo { width: 36px; height: 36px; }
.predictions-grid[data-layout="list"] .predictions-pick-team-name { font-size: 14px; }
.predictions-grid[data-layout="list"] .predictions-pick-detail-row {
    flex: 0 0 auto; background: transparent; border: none; padding: 0; gap: 12px;
}
.predictions-grid[data-layout="list"] .predictions-pick-meta { flex: 0 0 auto; }
/* Analysis IS available in list view now (full-width row under the card) */
.predictions-grid[data-layout="list"] .predictions-pick-notes {
    display: block; flex: 1 1 100%; margin-top: 2px;
}

/* ═══════════════════════════════════════════════════════════
   FILTERS — cleaner, more compact, modern
   ═══════════════════════════════════════════════════════════ */
.predictions-filters { padding: 16px 18px; gap: 12px; border-radius: 16px; }
.predictions-filter-main-row { gap: 10px; }
.predictions-filter-pill { padding: 7px 15px; font-size: 13px; }
.predictions-filter-pill.active { box-shadow: 0 3px 10px var(--pp-accent-soft); }
.predictions-filter-label { min-width: 52px; }

/* Analysis toggle: pill-style button instead of underlined link */
.predictions-pick-notes-toggle {
    display: inline-flex; align-items: center; gap: 5px;
    text-decoration: none; padding: 5px 12px; border-radius: 20px;
    border: 1.5px solid var(--pp-border); background: var(--pp-bg);
    transition: all var(--pp-transition);
}
.predictions-pick-notes-toggle:hover {
    border-color: var(--pp-accent); background: var(--pp-accent-soft); color: var(--pp-accent);
}
.predictions-pick-analysis {
    margin-top: 10px; padding: 12px 14px; font-size: 13px; line-height: 1.6;
    background: var(--pp-bg-card-hover); border: 1px solid var(--pp-border);
    border-radius: var(--pp-radius-sm); color: var(--pp-text);
    animation: pp-fade-in .2s ease both;
}

/* ═══════════════════════════════════════════════════════════
   MOBILE OPTIMISATION — filters, list view, cards
   ═══════════════════════════════════════════════════════════ */
@media (max-width: 640px) {
    .predictions-filters { padding: 12px; gap: 10px; }
    .predictions-filter-main-row { flex-direction: column; align-items: stretch; gap: 10px; }
    .predictions-filter-group--search { min-width: 0; width: 100%; }
    .predictions-btn-advanced-toggle { width: 100%; justify-content: center; }
    .predictions-layout-btns { margin-left: 0; justify-content: center; width: 100%; }
    .predictions-layout-btn { flex: 1; max-width: 64px; }

    /* Sport & result filters: label on top, pills scroll horizontally */
    .predictions-filter-group--wrap { flex-direction: column; align-items: stretch; gap: 6px; padding-bottom: 10px; }
    .predictions-filter-label { min-width: 0; }
    .pill-container { padding-bottom: 6px; }
    .predictions-filter-pill { padding: 8px 16px; }

    .advanced-filters-grid { grid-template-columns: 1fr 1fr; gap: 10px; }

    /* List view collapses to a clean stacked card on small screens */
    .predictions-grid[data-layout="list"] .predictions-pick-card {
        flex-direction: column; align-items: stretch; gap: 12px; padding: 16px;
    }
    .predictions-grid[data-layout="list"] .predictions-pick-header { flex-direction: row; justify-content: space-between; width: 100%; }
    .predictions-grid[data-layout="list"] .predictions-pick-matchup { flex-basis: auto; }
    .predictions-grid[data-layout="list"] .predictions-pick-detail-row {
        background: var(--pp-bg-card-hover); border: 1px solid var(--pp-border);
        padding: 10px 12px; flex-wrap: wrap; width: 100%; box-sizing: border-box;
    }
}
@media (max-width: 400px) {
    .advanced-filters-grid { grid-template-columns: 1fr; }
    .predictions-pick-card { padding: 16px; }
}

/* =============================================================================
   v3.5 — Posted date + attached image on pick cards
   ============================================================================= */
.predictions-pick-posted {
    font-size: 12px; color: var(--pp-text-muted);
    display: inline-flex; align-items: center; gap: 4px;
}

/* ── Compact attachment chip (quick-view + download) ─────────────────────── */
.predictions-pick-attachment { display: flex; align-items: stretch; gap: 8px; }
.predictions-attach-btn {
    flex: 1; min-width: 0; display: flex; align-items: center; gap: 10px;
    padding: 8px 10px; border: 1px solid var(--pp-border);
    background: var(--pp-bg-card-hover); border-radius: var(--pp-radius-sm);
    cursor: pointer; text-align: left; font-family: var(--pp-font);
    transition: all var(--pp-transition);
}
.predictions-attach-btn:hover { border-color: var(--pp-accent); background: var(--pp-accent-soft); }
.predictions-attach-thumb {
    width: 38px; height: 38px; flex-shrink: 0; border-radius: 6px;
    background-size: cover; background-position: center; background-repeat: no-repeat;
    border: 1px solid var(--pp-border);
}
.predictions-attach-icon {
    display: flex; align-items: center; justify-content: center;
    font-size: 20px; background: var(--pp-bg); border-style: solid;
}
a.predictions-attach-btn { text-decoration: none; }
a.predictions-attach-btn .predictions-attach-title {
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 180px;
}
.predictions-attach-text { display: flex; flex-direction: column; min-width: 0; line-height: 1.3; }
.predictions-attach-title { font-size: 13px; font-weight: 700; color: var(--pp-text); }
.predictions-attach-sub   { font-size: 11px; color: var(--pp-text-muted); }
.predictions-attach-eye   { margin-left: auto; font-size: 14px; opacity: .6; flex-shrink: 0; }
.predictions-attach-dl {
    flex-shrink: 0; width: 38px; display: flex; align-items: center; justify-content: center;
    border: 1px solid var(--pp-border); border-radius: var(--pp-radius-sm);
    background: var(--pp-bg); color: var(--pp-text-muted); text-decoration: none;
    font-size: 16px; transition: all var(--pp-transition);
}
.predictions-attach-dl:hover { border-color: var(--pp-accent); color: var(--pp-accent); background: var(--pp-accent-soft); }

/* List view: attachment stays compact inline */
.predictions-grid[data-layout="list"] .predictions-pick-attachment { flex: 0 0 auto; width: auto; }
.predictions-grid[data-layout="list"] .predictions-attach-text { display: none; }

/* ── Lightbox quick-view ─────────────────────────────────────────────────── */
.predictions-lightbox { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; }
.predictions-lightbox[hidden] { display: none; }
.predictions-lightbox-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.8); backdrop-filter: blur(3px); animation: pp-fade-in .15s ease both; }
.predictions-lightbox-inner {
    position: relative; z-index: 1; max-width: 92vw; max-height: 88vh;
    display: flex; flex-direction: column; align-items: center; gap: 12px;
    animation: pp-fade-in .2s ease both;
}
.predictions-lightbox-img {
    max-width: 92vw; max-height: 78vh; object-fit: contain;
    border-radius: 10px; box-shadow: 0 20px 60px rgba(0,0,0,.5); background: #fff;
}
.predictions-lightbox-close {
    position: absolute; top: -44px; right: 0; width: 36px; height: 36px;
    border: none; border-radius: 50%; background: rgba(255,255,255,.15);
    color: #fff; font-size: 24px; line-height: 1; cursor: pointer; transition: background .15s;
}
.predictions-lightbox-close:hover { background: rgba(255,255,255,.3); }
.predictions-lightbox-dl {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 9px 20px; border-radius: 22px; background: var(--pp-accent);
    color: var(--pp-accent-text) !important; font-size: 14px; font-weight: 700;
    text-decoration: none; transition: opacity .15s;
}
.predictions-lightbox-dl:hover { opacity: .9; text-decoration: none; }

/* =============================================================================
   v3.6 — Member affiliate dashboard [predictions_affiliate]
   ============================================================================= */
.predictions-affiliate { max-width: 640px; }
.predictions-beta-badge {
    font-size: 10px; font-weight: 800; letter-spacing: .06em; vertical-align: middle;
    background: var(--pp-pending-bg, #fef3c7); color: var(--pp-pending, #d97706);
    padding: 2px 8px; border-radius: 10px; margin-left: 6px;
}
.predictions-affiliate-title { font-size: 22px; font-weight: 800; color: var(--pp-text); margin: 0 0 6px; }
.predictions-affiliate-intro { font-size: 14px; color: var(--pp-text-muted); margin: 0 0 18px; line-height: 1.5; }
.predictions-affiliate-linkbox { display: flex; gap: 8px; margin-bottom: 20px; }
.predictions-affiliate-linkbox input {
    flex: 1; min-width: 0; padding: 11px 14px; font-size: 14px;
    border: 1.5px solid var(--pp-border); border-radius: var(--pp-radius-sm);
    background: var(--pp-bg-input); color: var(--pp-text); font-family: var(--pp-font);
}
.predictions-affiliate-linkbox .predictions-btn { flex-shrink: 0; }
.predictions-affiliate-stats {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px;
}
.predictions-affiliate-stat {
    background: var(--pp-bg-card); border: 1px solid var(--pp-border);
    border-radius: var(--pp-radius); padding: 16px 10px; text-align: center;
    display: flex; flex-direction: column; gap: 4px; box-shadow: var(--pp-shadow);
}
.predictions-affiliate-stat .pp-aff-val { font-size: 22px; font-weight: 800; color: var(--pp-text); line-height: 1.1; }
.predictions-affiliate-stat .pp-aff-money   { color: var(--pp-win); }
.predictions-affiliate-stat .pp-aff-pending { color: var(--pp-pending); }
.predictions-affiliate-stat .pp-aff-lbl { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--pp-text-faint); }
@media (max-width: 560px) {
    .predictions-affiliate-stats { grid-template-columns: repeat(2, 1fr); }
    .predictions-affiliate-linkbox { flex-direction: column; }
}

/* =============================================================================
   THEME: Bet Slip — sportsbook ticket look (scoped; affects only this theme)
   ============================================================================= */
.predictions-plugin-wrap[data-theme^="bet-slip"]{
    --pp-bg:#0c1118; --pp-bg-card:#151c26; --pp-bg-card-hover:#1b2430; --pp-bg-input:#0f1620;
    --pp-border:#26303d; --pp-border-strong:#36424f;
    --pp-text:#e8edf4; --pp-text-muted:#9aa7b6; --pp-text-faint:#6b7787;
    --pp-accent:#16c47f; --pp-accent-2:#12a76a; --pp-accent-soft:rgba(22,196,127,.12); --pp-accent-text:#04140d;
    --pp-win:#16c47f;  --pp-win-bg:rgba(22,196,127,.14);
    --pp-loss:#ff5c5c; --pp-loss-bg:rgba(255,92,92,.14);
    --pp-push:#9aa7b6; --pp-push-bg:rgba(154,167,182,.14);
    --pp-pending:#f5b54b; --pp-pending-bg:rgba(245,181,75,.14);
    --pp-void:#b98cff; --pp-void-bg:rgba(185,140,255,.14);
    --pp-badge-low:#9aa7b6; --pp-badge-medium:#16c47f; --pp-badge-high:#f5b54b; --pp-badge-max:#ff5c5c;
    --pp-mono:'JetBrains Mono',ui-monospace,'SF Mono',Menlo,Consolas,monospace;
}

/* ── Pick card → betting ticket ── */
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-card{
    border-radius:12px; border:1px solid var(--pp-border);
    box-shadow:0 1px 0 rgba(255,255,255,.03) inset, 0 6px 18px rgba(0,0,0,.35);
}
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-card.result-win   { border-left:4px solid var(--pp-win); }
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-card.result-loss  { border-left:4px solid var(--pp-loss); }
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-card.result-push  { border-left:4px solid var(--pp-push); }
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-card.result-void  { border-left:4px solid var(--pp-void); }
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-card.result-pending{ border-left:4px solid var(--pp-pending); }

/* Sport eyebrow + bold matchup */
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-sport-badge{
    background:transparent; color:var(--pp-text-muted); padding:0; font-size:11px; letter-spacing:.08em;
}
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-team-name{ font-weight:700; letter-spacing:-.01em; }
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-logo{ border-radius:8px; }
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-vs{
    background:transparent; border:none; color:var(--pp-text-faint); font-family:var(--pp-mono); font-size:11px;
}

/* The "stake line" — perforated, monospaced numbers */
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-detail-row{
    background:transparent; border:none; border-top:1px dashed var(--pp-border);
    border-bottom:1px dashed var(--pp-border); border-radius:0; padding:12px 2px;
}
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-on{ color:var(--pp-text); font-weight:700; }
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-line,
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-odds,
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-units,
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-confidence{
    font-family:var(--pp-mono);
}
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-odds{ font-size:17px; font-weight:700; color:var(--pp-text); }
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-units{ background:transparent; border:1px solid var(--pp-border); }

/* Result badge — make it the loud element */
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-result-badge{
    font-family:var(--pp-mono); font-size:13px; font-weight:700; padding:5px 12px; border-radius:6px;
}
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-posted,
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-date{ font-family:var(--pp-mono); font-size:11px; }

/* Analysis toggle as a board chip */
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-notes-toggle{
    border-color:var(--pp-border); color:var(--pp-text-muted);
}
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-notes-toggle:hover{
    border-color:var(--pp-accent); color:var(--pp-accent); background:var(--pp-accent-soft);
}

/* ── Paywall → teaser ticket ── */
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-paywall{
    background:linear-gradient(160deg,#151c26,#0f1620); border:1px dashed var(--pp-border-strong);
}
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-lock-badge{
    background:var(--pp-accent); color:var(--pp-accent-text); box-shadow:0 6px 18px rgba(22,196,127,.25),0 0 0 6px var(--pp-accent-soft);
}

/* ── Mono numerals across surfaces (pricing / capper / affiliate) ── */
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-package-price,
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-price-free,
.predictions-plugin-wrap[data-theme^="bet-slip"] .pp-price,
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-stat-value,
.predictions-plugin-wrap[data-theme^="bet-slip"] .capper-record-val,
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-roi-value,
.predictions-plugin-wrap[data-theme^="bet-slip"] .pp-aff-val{
    font-family:var(--pp-mono); letter-spacing:-.02em;
}

/* ── Filter board bar ── */
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-filters{
    background:var(--pp-bg-card); border-color:var(--pp-border);
}
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-filter-pill.active{
    box-shadow:0 0 0 1px var(--pp-accent) inset;
}

/* ── Bet Slip: full-width result/status footer bar ── */
.predictions-pick-statusbar{ display:none; }
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-card{ overflow:hidden; }
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-header .predictions-result-badge{ display:none; }
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-statusbar{
    display:flex; align-items:center; justify-content:space-between; gap:10px;
    margin:14px -20px -20px; padding:13px 18px;
    font-family:var(--pp-mono); font-size:14px; font-weight:700;
    flex-wrap:nowrap;
}
/* Fixed height + no-wrap so the bar is the same height whether the result is
   short ("WON") or long ("PENDING · Sep 11, 3:35 AM") — otherwise pending
   rows wrap to 2 lines and the whole bar/pips shift compared to graded rows. */
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-statusbar .psb-conf{ font-weight:500; font-size:12px; opacity:.9; white-space:nowrap; flex-shrink:0; }
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-statusbar .psb-result{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; text-align:right; }
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-statusbar .psb-pips{ letter-spacing:1px; }
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-statusbar.result-win   { background:var(--pp-win-bg);   color:var(--pp-win); }
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-statusbar.result-loss  { background:var(--pp-loss-bg);  color:var(--pp-loss); }
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-statusbar.result-push  { background:var(--pp-push-bg);  color:var(--pp-push); }
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-statusbar.result-void  { background:var(--pp-void-bg);  color:var(--pp-void); }
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-statusbar.result-pending{ background:var(--pp-pending-bg); color:var(--pp-pending); }
/* list layout: bar spans full row */
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-grid[data-layout="list"] .predictions-pick-statusbar{
    flex-basis:100%; margin:12px 0 0; padding:11px 14px; border-radius:8px;
}

/* Stronger ticket feel: bigger logos + odds */
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-logo{ width:52px; height:52px; }
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-team-name{ font-size:16px; }
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-detail-row{ padding:14px 2px; gap:14px; }
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-odds{ font-size:19px; }

/* =============================================================================
   Bet Slip — LIGHT variant palette (paper ticket). Structural rules above use
   [data-theme^="bet-slip"] so they apply here too; this just overrides colors.
   ============================================================================= */
.predictions-plugin-wrap[data-theme="bet-slip-light"]{
    --pp-bg:#eef1f4; --pp-bg-card:#ffffff; --pp-bg-card-hover:#f6f8fa; --pp-bg-input:#f4f6f8;
    --pp-border:#dfe5ec; --pp-border-strong:#c6cfd9;
    --pp-text:#0f1620; --pp-text-muted:#5b6675; --pp-text-faint:#8a96a5;
    --pp-accent:#12a76a; --pp-accent-2:#0e8c59; --pp-accent-soft:rgba(18,167,106,.10); --pp-accent-text:#ffffff;
    --pp-win:#0e9e63;  --pp-win-bg:rgba(18,167,106,.12);
    --pp-loss:#dc2b2b; --pp-loss-bg:rgba(220,43,43,.10);
    --pp-push:#5b6675; --pp-push-bg:rgba(91,102,117,.10);
    --pp-pending:#c47d12; --pp-pending-bg:rgba(196,125,18,.12);
    --pp-void:#8b5cf6; --pp-void-bg:rgba(139,92,246,.10);
    --pp-badge-low:#5b6675; --pp-badge-medium:#12a76a; --pp-badge-high:#c47d12; --pp-badge-max:#dc2b2b;
}
/* Light variant: ticket card gets a soft shadow instead of dark inner glow */
.predictions-plugin-wrap[data-theme="bet-slip-light"] .predictions-pick-card{
    box-shadow:0 1px 2px rgba(16,24,40,.04), 0 8px 20px rgba(16,24,40,.06);
}

/* =============================================================================
   Bet Slip — typography (Saira display + Space Mono numerals) — both variants
   ============================================================================= */
.predictions-plugin-wrap[data-theme^="bet-slip"]{
    --pp-mono:'Space Mono', ui-monospace,'SF Mono',Menlo,Consolas,monospace;
    --pp-display:'Saira', 'Archivo', system-ui, -apple-system, sans-serif;
}
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-team-name,
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-on,
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-sport-badge,
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-package-name{
    font-family:var(--pp-display); letter-spacing:.01em;
}
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-team-name{ font-weight:700; font-size:17px; letter-spacing:-.01em; }
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-sport-badge{ text-transform:uppercase; letter-spacing:.12em; font-weight:600; }

/* =============================================================================
   Bet Slip — glowing confidence "lights" (both variants)
   ============================================================================= */
.predictions-plugin-wrap[data-theme^="bet-slip"] .psb-pips{ display:inline-flex; align-items:center; gap:5px; margin-left:6px; vertical-align:middle; }
.predictions-plugin-wrap[data-theme^="bet-slip"] .psb-pip{ width:11px; height:11px; border-radius:50%; background:currentColor; }
.predictions-plugin-wrap[data-theme^="bet-slip"] .psb-pip.off{ opacity:.22; }
.predictions-plugin-wrap[data-theme^="bet-slip"] .psb-pip.on{ box-shadow:0 0 8px currentColor, 0 0 3px currentColor; }

/* =============================================================================
   Bet Slip — punched-hole ticket notches on the perforation line (both variants)
   ============================================================================= */
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-card{ position:relative; }
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-detail-row{
    position:relative; margin:0 -20px; padding:16px 20px;
}
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-detail-row::before,
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-detail-row::after{
    content:''; position:absolute; top:-9px; width:18px; height:18px; border-radius:50%;
    background:var(--pp-bg); border:1px solid var(--pp-border);
}
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-detail-row::before{ left:-10px; }
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-detail-row::after{ right:-10px; }
/* second pair of notches at the bottom of the stake line for a true ticket look */
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-on{ position:relative; }

/* =============================================================================
   Bet Slip — refinements: option A (no left edge), keep punch holes in GRID,
   clean up LIST view (ticket shapes are grid-only).
   ============================================================================= */
/* Option A: result color lives in the footer bar, not a left edge */
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-card.result-win,
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-card.result-loss,
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-card.result-push,
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-card.result-void,
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-card.result-pending{
    border-left:1px solid var(--pp-border);
}

/* LIST view: drop ticket shaping — no full-bleed stake line, no punch holes */
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-grid[data-layout="list"] .predictions-pick-detail-row{
    margin:0; padding:0; border:none; gap:14px;
}
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-grid[data-layout="list"] .predictions-pick-detail-row::before,
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-grid[data-layout="list"] .predictions-pick-detail-row::after{
    display:none;
}
/* LIST view: status bar becomes a tidy full-width footer strip */
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-grid[data-layout="list"] .predictions-pick-statusbar{
    flex-basis:100%; margin:10px 0 0; padding:10px 14px; border-radius:8px; font-size:13px;
}
/* LIST view: smaller logos so rows stay compact */
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-grid[data-layout="list"] .predictions-pick-logo{ width:34px; height:34px; }

/* =============================================================================
   CARD EDGE STYLES — global, theme-agnostic, chosen in Appearance
   (data-edge on .predictions-plugin-wrap: punch | scallop | left | none)
   Default is "punch" for every theme.
   ============================================================================= */

/* Left-accent control (result color on the left, only when edge=left) */
.predictions-plugin-wrap[data-edge="left"] .predictions-pick-card.result-win    { border-left:4px solid var(--pp-win) !important; }
.predictions-plugin-wrap[data-edge="left"] .predictions-pick-card.result-loss   { border-left:4px solid var(--pp-loss) !important; }
.predictions-plugin-wrap[data-edge="left"] .predictions-pick-card.result-push   { border-left:4px solid var(--pp-push) !important; }
.predictions-plugin-wrap[data-edge="left"] .predictions-pick-card.result-void   { border-left:4px solid var(--pp-void) !important; }
.predictions-plugin-wrap[data-edge="left"] .predictions-pick-card.result-pending{ border-left:4px solid var(--pp-pending) !important; }
.predictions-plugin-wrap[data-edge="punch"]   .predictions-pick-card,
.predictions-plugin-wrap[data-edge="scallop"] .predictions-pick-card,
.predictions-plugin-wrap[data-edge="none"]    .predictions-pick-card{ border-left:1px solid var(--pp-border) !important; }

/* Punch holes — REAL cut-outs via mask (so only the card is punched, the page
   shows through). Card keeps overflow:hidden so the full-bleed bars never spill. */
.predictions-plugin-wrap[data-edge="punch"] .predictions-pick-card{
    position:relative; overflow:hidden;
    -webkit-mask:
        radial-gradient(circle 14px at 0 50%, #0000 0 14px, #000 15px),
        radial-gradient(circle 14px at 100% 50%, #0000 0 14px, #000 15px);
    -webkit-mask-composite:source-in;
    mask:
        radial-gradient(circle 14px at 0 50%, #0000 0 14px, #000 15px),
        radial-gradient(circle 14px at 100% 50%, #0000 0 14px, #000 15px);
    mask-composite:intersect;
    box-shadow:none;
    filter:drop-shadow(0 4px 12px rgba(0,0,0,.16));
}
/* Plain punched hole: a border ring in the card border colour traces the hole on
   the card side. (A border survives the card mask; a box-shadow would be clipped.) */
.predictions-plugin-wrap[data-edge="punch"] .predictions-pick-card::before,
.predictions-plugin-wrap[data-edge="punch"] .predictions-pick-card::after{
    content:''; position:absolute; top:50%; transform:translateY(-50%);
    width:30px; height:30px; border-radius:50%; pointer-events:none; z-index:2;
    background:transparent; border:1.5px solid var(--pp-border-strong,var(--pp-border));
}
.predictions-plugin-wrap[data-edge="punch"] .predictions-pick-card::before{ left:-15px; }
.predictions-plugin-wrap[data-edge="punch"] .predictions-pick-card::after { right:-15px; }

/* Bet Slip: force consistent 20px padding so the full-bleed stake line and
   result bar (which use -20px margins) line up evenly on every card. */
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-card{ padding:20px !important; }

/* Scalloped (coupon) edges — top + bottom, with extra vertical padding so the
   scallops never clip card content */
.predictions-plugin-wrap[data-edge="scallop"] .predictions-pick-card{
    border:none !important; border-radius:0 !important;
    padding-top:26px !important; padding-bottom:26px !important;
    -webkit-mask:radial-gradient(9px at 50% 0,#0000 98%,#000) repeat-x 50% 0/18px 100%, radial-gradient(9px at 50% 100%,#0000 98%,#000) repeat-x 50% 100%/18px 100%;
    -webkit-mask-composite:source-in;
    mask:radial-gradient(9px at 50% 0,#0000 98%,#000) repeat-x 50% 0/18px 100%, radial-gradient(9px at 50% 100%,#0000 98%,#000) repeat-x 50% 100%/18px 100%;
    mask-composite:intersect;
    filter:drop-shadow(0 6px 14px rgba(0,0,0,.18));
}
/* Bet Slip has a full-bleed result bar at the bottom — scallop the TOP edge only
   so the bottom strip is never cut */
.predictions-plugin-wrap[data-theme^="bet-slip"][data-edge="scallop"] .predictions-pick-card{
    padding-bottom:0 !important; padding-top:26px !important;
    -webkit-mask:radial-gradient(9px at 50% 0,#0000 98%,#000) repeat-x 50% 0/18px 100% !important;
    mask:radial-gradient(9px at 50% 0,#0000 98%,#000) repeat-x 50% 0/18px 100% !important;
    -webkit-mask-composite:source-over !important;
    mask-composite:add !important;
}

/* Barcode + ticket ID footer — shown with ticket edges (punch/scallop), any theme */
.predictions-pick-ticketcode{ display:none; }
.predictions-plugin-wrap[data-theme^="bet-slip"][data-barcode="1"] .predictions-pick-ticketcode{
    display:flex; align-items:center; gap:12px; margin-top:10px; padding-top:10px;
    border-top:1px dashed var(--pp-border);
}
/* Never show the barcode in the compact list rows */
.predictions-plugin-wrap[data-theme^="bet-slip"][data-barcode="1"] .predictions-grid[data-layout="list"] .predictions-pick-ticketcode{ display:none; }
.predictions-pick-ticketcode .ptc-bars{
    flex:1; height:22px;
    background:repeating-linear-gradient(90deg, var(--pp-text-muted) 0 1px, transparent 1px 3px, var(--pp-text-muted) 3px 4px, transparent 4px 7px);
    opacity:.45;
}
.predictions-pick-ticketcode .ptc-id{ font-family:var(--pp-mono,ui-monospace,monospace); font-size:11px; letter-spacing:.04em; color:var(--pp-text-muted); white-space:nowrap; }

/* Bet Slip: drop the old detail-row notches (the global punch holes replace them) */
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-detail-row::before,
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-detail-row::after{ display:none !important; }

/* List view: never apply punch/scallop shaping to compact rows */
.predictions-plugin-wrap[data-edge="punch"]   .predictions-grid[data-layout="list"] .predictions-pick-card,
.predictions-plugin-wrap[data-edge="scallop"] .predictions-grid[data-layout="list"] .predictions-pick-card{
    -webkit-mask:none !important; mask:none !important; filter:none !important;
    padding:14px 20px !important; border:1px solid var(--pp-border) !important;
}

/* =============================================================================
   v3.10 — Read-analysis button, card textures, thermal theme, compact, pricing
   ============================================================================= */

/* Read Analysis → clean pill (was hideous) */
.predictions-pick-notes-toggle{
    display:inline-flex; align-items:center; gap:6px;
    font-size:12px; font-weight:600; line-height:1;
    color:var(--pp-accent); background:var(--pp-accent-soft);
    border:1px solid transparent; border-radius:999px;
    padding:7px 14px; cursor:pointer; text-decoration:none; transition:all .15s;
}
.predictions-pick-notes-toggle:hover{ filter:brightness(.97); border-color:var(--pp-accent); }
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-notes-toggle{
    background:transparent; border:1px solid var(--pp-border); color:var(--pp-text-muted);
}
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-pick-notes-toggle:hover{
    border-color:var(--pp-accent); color:var(--pp-accent); background:var(--pp-accent-soft);
}

/* ── Card textures (work on any theme; set readable text colors) ── */
.predictions-plugin-wrap[data-texture="paper"] .predictions-pick-card{
    --pp-text:#2b2620; --pp-text-muted:#6b6256; --pp-text-faint:#9a8f7d;
    background-color:#f6f1e6;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.06'/%3E%3C/svg%3E");
}
.predictions-plugin-wrap[data-texture="kraft"] .predictions-pick-card{
    --pp-text:#2e2212; --pp-text-muted:#6b5230; --pp-text-faint:#8a6e3e; --pp-border:#b48f5c;
    background-color:#cba872;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='k'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23k)' opacity='0.16'/%3E%3C/svg%3E");
}
.predictions-plugin-wrap[data-texture="receipt"] .predictions-pick-card{
    --pp-text:#22262b; --pp-text-muted:#5b636b; --pp-text-faint:#8a929a;
    background-color:#f8f8f6;
    background-image:repeating-linear-gradient(0deg, rgba(0,0,0,.035) 0 1px, transparent 1px 6px), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='t'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='1' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23t)' opacity='0.04'/%3E%3C/svg%3E");
}
.predictions-plugin-wrap[data-texture="vintage"] .predictions-pick-card{
    --pp-text:#4a3a22; --pp-text-muted:#8a6f3e; --pp-text-faint:#a99c79; --pp-border:#d8cba6;
    background-color:#f1e6cb;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='vg'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.04' numOctaves='2' seed='7'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.45  0 0 0 0 0.33  0 0 0 0 0.15  0 0 0 0.5 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23vg)' opacity='0.10'/%3E%3C/svg%3E");
}
.predictions-plugin-wrap[data-texture="corrugated"] .predictions-pick-card{
    --pp-text:#2e2212; --pp-text-muted:#6b5230; --pp-text-faint:#8a6e3e; --pp-border:#b48f5c;
    background-color:#caa46f;
    background-image:repeating-linear-gradient(90deg, rgba(0,0,0,.07) 0 1px, transparent 1px 4px, rgba(255,255,255,.08) 4px 5px, transparent 5px 9px), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='cg'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23cg)' opacity='0.12'/%3E%3C/svg%3E");
}
.predictions-plugin-wrap[data-texture="thermal"] .predictions-pick-card{
    --pp-text:#22262b; --pp-text-muted:#5b636b; --pp-text-faint:#8a929a;
    background-color:#f8f8f6;
    background-image:repeating-linear-gradient(0deg, rgba(0,0,0,.035) 0 1px, transparent 1px 6px), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='th'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='1' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23th)' opacity='0.04'/%3E%3C/svg%3E");
}

/* ── Thermal receipt THEME (light ticket + receipt texture baked in) ── */
.predictions-plugin-wrap[data-theme="bet-slip-receipt"]{
    --pp-bg:#e9eae7; --pp-bg-card:#f8f8f6; --pp-bg-card-hover:#fff; --pp-bg-input:#f1f1ee;
    --pp-border:#dcdcd6; --pp-border-strong:#c4c4bd;
    --pp-text:#22262b; --pp-text-muted:#5b636b; --pp-text-faint:#8a929a;
    --pp-accent:#111827; --pp-accent-2:#000; --pp-accent-soft:rgba(0,0,0,.06); --pp-accent-text:#fff;
    --pp-win:#0e9e63; --pp-win-bg:rgba(18,167,106,.12);
    --pp-loss:#c62828; --pp-loss-bg:rgba(198,40,40,.10);
    --pp-push:#5b636b; --pp-push-bg:rgba(91,99,107,.10);
    --pp-pending:#a85b00; --pp-pending-bg:rgba(168,91,0,.12);
    --pp-void:#6d4ab7; --pp-void-bg:rgba(109,74,183,.10);
    --pp-badge-low:#5b636b; --pp-badge-medium:#0e9e63; --pp-badge-high:#a85b00; --pp-badge-max:#c62828;
}
.predictions-plugin-wrap[data-theme="bet-slip-receipt"] .predictions-pick-card{
    background-image:repeating-linear-gradient(0deg, rgba(0,0,0,.04) 0 1px, transparent 1px 6px), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='tr'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='1' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23tr)' opacity='0.04'/%3E%3C/svg%3E");
}

/* ── Compact layout (default) ── */
.predictions-grid[data-layout="compact"]{ grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:12px; }
.predictions-grid[data-layout="compact"] .predictions-pick-card{ padding:16px; gap:10px; }
@media (max-width:560px){ .predictions-grid[data-layout="compact"]{ grid-template-columns:1fr; } }

/* ── Pricing polish ── */
.predictions-package-card{ border-radius:14px; transition:transform var(--pp-transition), box-shadow var(--pp-transition), border-color var(--pp-transition); }
.predictions-package-card:hover{ transform:translateY(-3px); box-shadow:var(--pp-shadow-hover); border-color:var(--pp-accent); }
.predictions-package-price{ letter-spacing:-.02em; }
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-package-price,
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-price-free{ font-family:var(--pp-mono); }
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-package-card{ border-radius:14px; }
@media (max-width:560px){ .predictions-packages-grid{ grid-template-columns:1fr; } }

/* =============================================================================
   v3.12 — Filter chips: outline chips with sport-colour dot + result colours
   ============================================================================= */
.predictions-filter-pill{
    display:inline-flex; align-items:center; gap:7px;
    padding:8px 15px; border-radius:10px;
    border:1.5px solid var(--pp-border); background:var(--pp-bg);
    color:var(--pp-text); font-size:13px; font-weight:600; line-height:1;
    cursor:pointer; transition:transform .14s, box-shadow .14s, border-color .14s, background .14s, color .14s;
    white-space:nowrap; font-family:inherit;
}
.predictions-filter-pill:hover{ border-color:var(--pp-accent); transform:translateY(-1px); box-shadow:0 4px 10px rgba(0,0,0,.07); }
.predictions-filter-pill.active{ background:var(--pp-accent); border-color:var(--pp-accent); color:var(--pp-accent-text); box-shadow:0 4px 12px var(--pp-accent-soft); transform:none; }

.pp-pill-dot{ width:8px; height:8px; border-radius:50%; flex-shrink:0; box-shadow:0 0 0 2px rgba(0,0,0,.05); }
.predictions-filter-pill.active .pp-pill-dot{ box-shadow:0 0 0 2px rgba(255,255,255,.35); }

/* Result chips — dot tinted by outcome; when active, chip fills with that colour */
.predictions-result-pill.pp-res-pending .pp-pill-dot{ background:var(--pp-pending); }
.predictions-result-pill.pp-res-win     .pp-pill-dot{ background:var(--pp-win); }
.predictions-result-pill.pp-res-loss    .pp-pill-dot{ background:var(--pp-loss); }
.predictions-result-pill.pp-res-push    .pp-pill-dot{ background:var(--pp-push); }
.predictions-result-pill.pp-res-void    .pp-pill-dot{ background:var(--pp-void); }

.predictions-result-pill.pp-res-pending.active{ background:var(--pp-pending); border-color:var(--pp-pending); color:#fff; box-shadow:0 4px 12px var(--pp-pending-bg); }
.predictions-result-pill.pp-res-win.active{     background:var(--pp-win);     border-color:var(--pp-win);     color:#fff; box-shadow:0 4px 12px var(--pp-win-bg); }
.predictions-result-pill.pp-res-loss.active{    background:var(--pp-loss);    border-color:var(--pp-loss);    color:#fff; box-shadow:0 4px 12px var(--pp-loss-bg); }
.predictions-result-pill.pp-res-push.active{    background:var(--pp-push);    border-color:var(--pp-push);    color:#fff; box-shadow:0 4px 12px var(--pp-push-bg); }
.predictions-result-pill.pp-res-void.active{    background:var(--pp-void);    border-color:var(--pp-void);    color:#fff; box-shadow:0 4px 12px var(--pp-void-bg); }
.predictions-result-pill.active .pp-pill-dot{ background:#fff !important; }

/* Filter labels a touch cleaner */
.predictions-filter-label{ font-weight:700; }

/* =============================================================================
   v3.12 — Cohesive front-end polish across all surfaces
   ============================================================================= */

/* ── Advanced filters (selects + toggles match the chip look) ── */
.predictions-advanced-filters-panel{ border-radius:12px; padding:18px; }
.advanced-filters-grid{ gap:14px; }
.predictions-filter-select{
    border-radius:10px; border:1.5px solid var(--pp-border); padding:9px 12px;
    font-weight:600; font-size:13px; transition:border-color .15s, box-shadow .15s;
}
.predictions-filter-select:hover{ border-color:var(--pp-accent); }
.predictions-filter-select:focus{ border-color:var(--pp-accent); box-shadow:0 0 0 3px var(--pp-accent-soft); outline:none; }
.predictions-btn-advanced-toggle{ border-radius:10px; font-weight:600; transition:all .15s; }
.predictions-btn-advanced-toggle:hover{ transform:translateY(-1px); }
.predictions-filter-clear{ border-radius:10px; font-weight:600; }
.predictions-layout-btn{ border-radius:10px; transition:all .15s; }
.predictions-layout-btn.active{ box-shadow:0 3px 8px var(--pp-accent-soft); }

/* ── Pricing / packages ── */
.predictions-package-card{ border-radius:16px; }
.predictions-package-card.featured{ box-shadow:0 10px 30px var(--pp-accent-soft); }
.predictions-package-price{ font-size:34px; font-weight:800; }
.predictions-package-btn,.pp-btn-stripe,.pp-btn-free,.pp-btn-view,.pp-btn-renew,.pp-btn-fallback{
    border-radius:10px !important; font-weight:700 !important; padding:13px !important; transition:transform .15s, box-shadow .15s, opacity .15s !important;
}
.predictions-package-btn:hover,.pp-btn-stripe:hover,.pp-btn-free:hover,.pp-btn-view:hover{ transform:translateY(-1px); box-shadow:0 6px 16px rgba(0,0,0,.12); }
.pp-card{ border-radius:16px !important; transition:transform .18s, box-shadow .18s, border-color .18s; }
.pp-card:hover{ transform:translateY(-3px); }
.pp-price{ font-weight:800; }

/* ── Affiliate dashboard ── */
.predictions-affiliate-stat{ transition:transform .15s, box-shadow .15s; }
.predictions-affiliate-stat:hover{ transform:translateY(-2px); box-shadow:var(--pp-shadow-hover); }
.predictions-affiliate-linkbox input{ border-radius:10px; }
.predictions-beta-badge{ font-size:10px; font-weight:800; letter-spacing:.06em; background:var(--pp-accent-soft); color:var(--pp-accent); padding:2px 8px; border-radius:999px; vertical-align:middle; }

/* ── Capper dashboard: mono numerals on Bet Slip + tidy buttons ── */
.predictions-plugin-wrap[data-theme^="bet-slip"] .predictions-stat-value,
.predictions-plugin-wrap[data-theme^="bet-slip"] .capper-record-val,
.predictions-capper-wrap[data-theme^="bet-slip"] .predictions-stat-value,
.predictions-capper-wrap[data-theme^="bet-slip"] .capper-record-val{ font-family:var(--pp-mono,ui-monospace,monospace); letter-spacing:-.02em; }
.predictions-capper .predictions-btn{ border-radius:10px; }
.predictions-capper-section{ border-radius:18px; }

/* ── Fixtures widget (wrapper-scoped to beat the inline styles) ── */
.pv-fixtures-widget .pv-fw-card{ border-radius:12px; transition:transform .15s, box-shadow .15s, border-color .15s; }
.pv-fixtures-widget .pv-fw-card:hover{ transform:translateY(-2px); box-shadow:0 6px 16px rgba(0,0,0,.10); }
.pv-fixtures-widget .pv-fw-sport{ border-radius:10px; font-weight:600; }
.pv-fixtures-widget .pv-fw-tab{ border-radius:8px; font-weight:700; }
.pv-fixtures-widget[data-theme^="bet-slip"] .pv-fw-score{ font-family:var(--pp-mono); }

/* ── Game carousel (wrapper-scoped) ── */
.pv-gc-outer .pv-gc-arrow{
    flex:0 0 40px !important; width:40px !important; height:40px !important; min-width:40px !important;
    align-self:center !important; margin:0 6px !important; padding:0 !important;
    border-radius:50% !important;
    border:1.5px solid var(--gc-border) !important;
    background:var(--gc-bg) !important; color:var(--gc-muted) !important;
    display:flex !important; align-items:center; justify-content:center; transition:all .15s;
}
.pv-gc-outer .pv-gc-arrow:last-child{ border-left:1.5px solid var(--gc-border) !important; }
.pv-gc-outer .pv-gc-arrow:hover{ border-color:var(--gc-accent) !important; color:var(--gc-accent) !important; transform:scale(1.06); }
.pv-gc-outer .pv-gc-card{ border-radius:12px; transition:transform .15s, border-color .15s; }
.pv-gc-outer .pv-gc-card:hover{ transform:translateY(-2px); }
.pv-gc-outer[data-theme^="bet-slip"] .pv-gc-score{ font-family:var(--pp-mono); }

/* ── Mobile niceties ── */
@media (max-width:560px){
    .predictions-filter-pill{ padding:8px 13px; }
    .predictions-package-price{ font-size:30px; }
    .predictions-affiliate-stats{ gap:10px; }
}

/* =============================================================================
   v3.13 — Capper table + carousel board polish
   ============================================================================= */
/* Capper manage-picks rows: hover + result-coloured badges already themed */
.predictions-capper-table tbody tr{ transition:background .15s; }
.predictions-capper-wrap[data-theme^="bet-slip"] .predictions-capper-table thead th{ font-family:var(--pp-mono,monospace); }
.predictions-capper-wrap[data-theme^="bet-slip"] .predictions-sport-badge,
.predictions-capper-wrap[data-theme^="bet-slip"] .predictions-badge{ font-family:var(--pp-mono,monospace); }
.predictions-capper-stats .predictions-stat-card{ transition:transform .15s, box-shadow .15s; }

/* Carousel: board frame + live pulse */
.pv-gc-outer .pv-gc-wrap{ box-shadow:0 4px 18px rgba(0,0,0,.08); }
.pv-gc-outer .pv-gc-card-status.live{ box-shadow:0 0 0 0 rgba(239,68,68,.5); animation:pv-gc-livepulse 1.5s infinite; }
@keyframes pv-gc-livepulse{ 70%{ box-shadow:0 0 0 6px rgba(239,68,68,0);} 100%{ box-shadow:0 0 0 0 rgba(239,68,68,0);} }
.pv-gc-outer .pv-gc-tab{ border-radius:8px; font-weight:700; transition:all .12s; }
.pv-gc-outer .pv-gc-tab.active{ box-shadow:0 2px 8px rgba(0,0,0,.12); }
.pv-gc-outer .pv-gc-team-logo,.pv-gc-outer .pv-gc-team-initials{ transition:transform .15s; }
.pv-gc-outer .pv-gc-card:hover .pv-gc-team-logo{ transform:scale(1.06); }

/* =============================================================================
   v3.17 — METALLIC THEMES (full-metal pick cards): gold / silver / black / platinum
   Brushed-metal surface + drifting sheen + embossed text + inset pick panel.
   Reuses the ticket footer (statusbar) and barcode; respects card edges.
   ============================================================================= */

/* ── Variable palettes ─────────────────────────────────────────────────── */
.predictions-plugin-wrap[data-theme="metallic-gold"]{
    --pp-bg:#ece8e0; --pp-bg-card:#d8b563; --pp-bg-card-hover:#e0c473; --pp-bg-input:#f3ecdc;
    --pp-border:#b98f37; --pp-border-strong:#8a6410;
    --pp-text:#4a3410; --pp-text-muted:#6a5222; --pp-text-faint:#8a7440;
    --pp-accent:#9a6f28; --pp-accent-2:#7a561c; --pp-accent-soft:rgba(154,111,40,.14); --pp-accent-text:#fff8e6;
    --pp-metal-a:#a5772a; --pp-metal-b:#e7c877; --pp-metal-c:#c9a24d; --pp-metal-d:#9a6f28; --pp-metal-e:#dcbb66;
    --pp-emboss-hi:rgba(255,255,255,.5); --pp-emboss-lo:rgba(60,42,0,.42);
    --pp-win:#1c7a3e;--pp-win-bg:rgba(28,122,62,.18);--pp-loss:#a51818;--pp-loss-bg:rgba(165,24,24,.15);
    --pp-push:#7a561c;--pp-push-bg:rgba(122,86,28,.15);--pp-pending:#8a6410;--pp-pending-bg:rgba(138,100,16,.15);
    --pp-void:#6b21a8;--pp-void-bg:rgba(107,33,168,.13);
    --pp-mono:"Space Mono",ui-monospace,monospace;
    --pp-radius:18px; --pp-radius-sm:11px; --pp-radius-xs:7px;
}
.predictions-plugin-wrap[data-theme="metallic-silver"]{
    --pp-bg:#eceef0; --pp-bg-card:#d3d9e0; --pp-bg-card-hover:#e2e7ec; --pp-bg-input:#f3f5f7;
    --pp-border:#a8b1bc; --pp-border-strong:#828b96;
    --pp-text:#39424c; --pp-text-muted:#5b6572; --pp-text-faint:#8892a0;
    --pp-accent:#5b6572; --pp-accent-2:#454e58; --pp-accent-soft:rgba(91,101,114,.14); --pp-accent-text:#fff;
    --pp-metal-a:#8b939d; --pp-metal-b:#eef2f6; --pp-metal-c:#c2c9d1; --pp-metal-d:#828b96; --pp-metal-e:#dfe4e9;
    --pp-emboss-hi:rgba(255,255,255,.65); --pp-emboss-lo:rgba(55,65,80,.4);
    --pp-win:#15803d;--pp-win-bg:rgba(21,128,61,.16);--pp-loss:#b91c1c;--pp-loss-bg:rgba(185,28,28,.13);
    --pp-push:#5b6572;--pp-push-bg:rgba(91,101,114,.14);--pp-pending:#b45309;--pp-pending-bg:rgba(180,83,9,.13);
    --pp-void:#7c3aed;--pp-void-bg:rgba(124,58,237,.12);
    --pp-mono:"Space Mono",ui-monospace,monospace;
    --pp-radius:18px; --pp-radius-sm:11px; --pp-radius-xs:7px;
}
.predictions-plugin-wrap[data-theme="metallic-black"]{
    --pp-bg:#0c0d10; --pp-bg-card:#26272c; --pp-bg-card-hover:#303138; --pp-bg-input:#1a1b1f;
    --pp-border:rgba(215,198,144,.32); --pp-border-strong:rgba(215,198,144,.5);
    --pp-text:#e6cf83; --pp-text-muted:#c8a94e; --pp-text-faint:#9a8542;
    --pp-accent:#d4a017; --pp-accent-2:#b8860b; --pp-accent-soft:rgba(212,160,23,.14); --pp-accent-text:#0c0d10;
    --pp-metal-a:#141519; --pp-metal-b:#3a3c42; --pp-metal-c:#232429; --pp-metal-d:#0f1013; --pp-metal-e:#33353b;
    --pp-emboss-hi:rgba(215,198,144,.28); --pp-emboss-lo:rgba(0,0,0,.7);
    --pp-win:#22c55e;--pp-win-bg:rgba(34,197,94,.16);--pp-loss:#f04747;--pp-loss-bg:rgba(240,71,71,.16);
    --pp-push:#d4a017;--pp-push-bg:rgba(212,160,23,.14);--pp-pending:#f0b429;--pp-pending-bg:rgba(240,180,41,.14);
    --pp-void:#a78bfa;--pp-void-bg:rgba(167,139,250,.14);
    --pp-mono:"Space Mono",ui-monospace,monospace;
    --pp-radius:18px; --pp-radius-sm:11px; --pp-radius-xs:7px;
}
.predictions-plugin-wrap[data-theme="metallic-platinum"]{
    --pp-bg:#edecea; --pp-bg-card:#d3cec8; --pp-bg-card-hover:#e2ddd7; --pp-bg-input:#f5f4f2;
    --pp-border:#aca79f; --pp-border-strong:#7c7873;
    --pp-text:#3d3a36; --pp-text-muted:#6a655f; --pp-text-faint:#948e86;
    --pp-accent:#6a655f; --pp-accent-2:#4d4944; --pp-accent-soft:rgba(106,101,95,.14); --pp-accent-text:#fff;
    --pp-metal-a:#8f8a86; --pp-metal-b:#e8e4df; --pp-metal-c:#bcb7b1; --pp-metal-d:#7c7873; --pp-metal-e:#d8d3cd;
    --pp-emboss-hi:rgba(255,255,255,.6); --pp-emboss-lo:rgba(50,46,42,.4);
    --pp-win:#15803d;--pp-win-bg:rgba(21,128,61,.16);--pp-loss:#b91c1c;--pp-loss-bg:rgba(185,28,28,.13);
    --pp-push:#6a655f;--pp-push-bg:rgba(106,101,95,.14);--pp-pending:#b45309;--pp-pending-bg:rgba(180,83,9,.13);
    --pp-void:#7c3aed;--pp-void-bg:rgba(124,58,237,.12);
    --pp-mono:"Space Mono",ui-monospace,monospace;
    --pp-radius:18px; --pp-radius-sm:11px; --pp-radius-xs:7px;
}

/* ── The metal surface ─────────────────────────────────────────────────── */
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-card{
    position:relative; overflow:hidden; color:var(--pp-text);
    padding:20px;
    border:1px solid var(--pp-border-strong) !important;
    border-radius:var(--pp-radius);
    /* Gentle drifting sheen layered over a clean metal gradient — no blend modes.
       Soft, wide, low-opacity band so it reads as a light drift, not a hard streak. */
    background:
        linear-gradient(102deg, transparent 28%, rgba(255,255,255,.16) 44%, rgba(255,255,255,.26) 50%,
                        rgba(255,255,255,.16) 56%, transparent 72%),
        linear-gradient(135deg, var(--pp-metal-a) 0%, var(--pp-metal-b) 26%, var(--pp-metal-c) 50%,
                        var(--pp-metal-d) 74%, var(--pp-metal-e) 100%);
    background-size:340% 100%, 100% 100%;
    background-position:-70% 0, 0 0;
    background-repeat:no-repeat;
    animation:pp-metal-sheen 9s ease-in-out infinite;
    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,.30),
        inset 0 2px 3px rgba(255,255,255,.6),
        inset 0 -18px 32px rgba(0,0,0,.20),
        0 18px 40px -18px rgba(0,0,0,.5);
}
.predictions-plugin-wrap[data-theme="metallic-black"] .predictions-pick-card{
    background:
        linear-gradient(102deg, transparent 28%, rgba(255,255,255,.08) 44%, rgba(255,255,255,.14) 50%,
                        rgba(255,255,255,.08) 56%, transparent 72%),
        linear-gradient(135deg, var(--pp-metal-a) 0%, var(--pp-metal-b) 26%, var(--pp-metal-c) 50%,
                        var(--pp-metal-d) 74%, var(--pp-metal-e) 100%);
    background-size:340% 100%, 100% 100%;
    background-position:-70% 0, 0 0;
    background-repeat:no-repeat;
    box-shadow:
        inset 0 0 0 1px rgba(215,198,144,.18),
        inset 0 2px 3px rgba(215,198,144,.22),
        inset 0 -18px 32px rgba(0,0,0,.5),
        0 20px 46px -18px rgba(0,0,0,.8);
}
@keyframes pp-metal-sheen{
    0%   { background-position:-70% 0, 0 0; }
    55%  { background-position:200% 0, 0 0; }
    100% { background-position:200% 0, 0 0; }
}
@media (prefers-reduced-motion:reduce){
    .predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-card{
        animation:none; background-position:40% 0, 0 0;
    }
}

/* Metallic themes are always clean flat plates — never punched, scalloped, or left-barred,
   regardless of the global Card Edge setting. */
.predictions-plugin-wrap[data-theme^="metallic"][data-edge="punch"]   .predictions-pick-card,
.predictions-plugin-wrap[data-theme^="metallic"][data-edge="scallop"] .predictions-pick-card,
.predictions-plugin-wrap[data-theme^="metallic"][data-edge="left"]    .predictions-pick-card,
.predictions-plugin-wrap[data-theme^="metallic"][data-edge="none"]    .predictions-pick-card,
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-card{
    -webkit-mask:none !important; mask:none !important; filter:none !important;
    border:1px solid var(--pp-border-strong) !important;
    border-radius:var(--pp-radius) !important;
    padding:20px !important;
}
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-card::before{
    content:none !important; display:none !important;
}
/* Inner hairline "crease" frame (the detail you liked from the mockup) */
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-card::after{
    content:"" !important; display:block !important;
    position:absolute; inset:8px; width:auto; height:auto; top:8px; left:8px; right:8px; bottom:8px;
    border-radius:calc(var(--pp-radius) - 6px);
    border:1px solid rgba(255,255,255,.4);
    box-shadow:inset 0 0 0 1px rgba(0,0,0,.12);
    background:none; -webkit-mask:none; mask:none; transform:none; filter:none;
    pointer-events:none; z-index:3;
}
.predictions-plugin-wrap[data-theme="metallic-black"] .predictions-pick-card::after{
    border-color:rgba(215,198,144,.3); box-shadow:inset 0 0 0 1px rgba(0,0,0,.4);
}
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-card:hover{
    transform:translateY(-3px);
    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,.32),
        inset 0 2px 3px rgba(255,255,255,.6),
        inset 0 -18px 32px rgba(0,0,0,.26),
        0 26px 52px -18px rgba(0,0,0,.6);
}

/* ── Embossed text ─────────────────────────────────────────────────────── */
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-sport-badge,
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-category,
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-team-name,
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-team-sub,
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-vs,
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-on,
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-line,
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-odds,
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-units,
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-confidence,
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-date,
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-posted,
.predictions-plugin-wrap[data-theme^="metallic"] .ptc-id,
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-statusbar{
    text-shadow:0 1px 0 var(--pp-emboss-hi), 0 -1px 1px var(--pp-emboss-lo);
}
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-team-name{ color:var(--pp-text); font-weight:800; }
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-sport-badge{
    background:transparent; color:var(--pp-text); font-weight:800; letter-spacing:.04em; padding-left:0;
}
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-vs{ color:var(--pp-text-muted); }

/* mono numerals */
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-odds,
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-units,
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-line,
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-confidence{ font-family:var(--pp-mono); }

/* ── Team logo medallions (soft metal disc behind the crest) ───────────── */
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-logo{
    background:radial-gradient(circle at 38% 30%, rgba(255,255,255,.55), rgba(255,255,255,.15) 70%);
    border-radius:50%; padding:4px;
    box-shadow:inset 0 1px 2px rgba(255,255,255,.7), inset 0 -2px 4px rgba(0,0,0,.28), 0 2px 4px rgba(0,0,0,.28);
}
.predictions-plugin-wrap[data-theme="metallic-black"] .predictions-pick-logo{
    background:radial-gradient(circle at 38% 30%, rgba(215,198,144,.28), rgba(0,0,0,.2) 70%);
    box-shadow:inset 0 1px 2px rgba(215,198,144,.35), inset 0 -2px 4px rgba(0,0,0,.6), 0 2px 4px rgba(0,0,0,.5);
}

/* ── Pick detail row → inset stamped panel ─────────────────────────────── */
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-detail-row{
    background:linear-gradient(180deg, rgba(0,0,0,.14), rgba(0,0,0,.04));
    border:none; border-radius:var(--pp-radius-sm); padding:11px 13px; margin-top:12px;
    box-shadow:inset 0 2px 5px rgba(0,0,0,.28), inset 0 -1px 0 rgba(255,255,255,.3);
}
.predictions-plugin-wrap[data-theme="metallic-black"] .predictions-pick-detail-row{
    background:linear-gradient(180deg, rgba(0,0,0,.45), rgba(0,0,0,.2));
    box-shadow:inset 0 2px 5px rgba(0,0,0,.55), inset 0 -1px 0 rgba(215,198,144,.18);
}
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-odds{ font-size:17px; font-weight:800; color:var(--pp-text); }
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-units{
    background:transparent; border:1px solid var(--pp-border); color:var(--pp-text);
}
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-confidence.low,
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-confidence.medium,
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-confidence.high,
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-confidence.max{
    background:rgba(255,255,255,.2); color:var(--pp-text); border-color:var(--pp-border);
}

/* ── Read-analysis chip on metal ───────────────────────────────────────── */
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-notes-toggle{
    background:rgba(255,255,255,.22); border:1px solid var(--pp-border-strong); color:var(--pp-text);
}
.predictions-plugin-wrap[data-theme="metallic-black"] .predictions-pick-notes-toggle{
    background:rgba(215,198,144,.12); color:var(--pp-accent);
}
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-analysis{
    background:rgba(255,255,255,.35); border-radius:var(--pp-radius-sm); padding:12px 14px;
    color:var(--pp-text); box-shadow:inset 0 1px 3px rgba(0,0,0,.15);
}
.predictions-plugin-wrap[data-theme="metallic-black"] .predictions-pick-analysis{
    background:rgba(0,0,0,.3); color:#e9e2c8;
}

/* ── Barcode + ticket-ID footer (same behavior as Bet Slip) ────────────── */
.predictions-plugin-wrap[data-theme^="metallic"][data-barcode="1"] .predictions-pick-ticketcode{
    display:flex; align-items:center; gap:12px; margin-top:12px; padding-top:11px;
    border-top:1px dashed var(--pp-border-strong);
}
.predictions-plugin-wrap[data-theme^="metallic"][data-barcode="1"] .predictions-grid[data-layout="list"] .predictions-pick-ticketcode{ display:none; }

/* ── Full-width result/status footer bar ───────────────────────────────── */
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-header .predictions-result-badge{ display:none; }
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-statusbar{
    display:flex; align-items:center; justify-content:space-between; gap:10px;
    margin:12px 0 0; padding:10px 14px; border-radius:var(--pp-radius-sm);
    font-family:var(--pp-mono); font-size:14px; font-weight:700;
    border-top:none;
}
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-statusbar .psb-conf{ font-weight:500; font-size:12px; opacity:.9; }
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-statusbar.result-win    { background:var(--pp-win-bg);    color:var(--pp-win); }
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-statusbar.result-loss   { background:var(--pp-loss-bg);   color:var(--pp-loss); }
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-statusbar.result-push   { background:var(--pp-push-bg);   color:var(--pp-push); }
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-statusbar.result-void   { background:var(--pp-void-bg);   color:var(--pp-void); }
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-statusbar.result-pending{ background:var(--pp-pending-bg); color:var(--pp-pending); }
.predictions-plugin-wrap[data-theme^="metallic"] .psb-pips{ display:inline-flex; align-items:center; gap:5px; margin-left:6px; vertical-align:middle; }
.predictions-plugin-wrap[data-theme^="metallic"] .psb-pip{ width:11px; height:11px; border-radius:50%; background:currentColor; }
.predictions-plugin-wrap[data-theme^="metallic"] .psb-pip.off{ opacity:.24; }
.predictions-plugin-wrap[data-theme^="metallic"] .psb-pip.on{ box-shadow:0 0 8px currentColor, 0 0 3px currentColor; }

/* List view: statusbar stays inline (mirror Bet Slip behavior) */
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-grid[data-layout="list"] .predictions-pick-statusbar{
    margin:12px 0 0; border-radius:var(--pp-radius-sm);
}

/* ── Paywall teaser on metal ───────────────────────────────────────────── */
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-paywall{
    background:rgba(0,0,0,.14); border:1px dashed var(--pp-border-strong); border-radius:var(--pp-radius-sm);
}
.predictions-plugin-wrap[data-theme="metallic-black"] .predictions-paywall{ background:rgba(0,0,0,.4); }
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-lock-badge{
    background:var(--pp-accent); color:var(--pp-accent-text);
}

/* =============================================================================
   METALLIC — clean "widget" density: strip emojis + noise, tighten to match mockup
   ============================================================================= */

/* Emojis off everywhere in metal themes (icons are wrapped in .pp-emoji spans) */
.predictions-plugin-wrap[data-theme^="metallic"] .pp-emoji{ display:none !important; }

/* Metal-only header pips / league subline / footer units are hidden on other themes */
.predictions-pick-mh-pips, .predictions-pick-mh-subline, .predictions-pick-ticketcode .ptc-units{ display:none; }

/* Header → clean tier label (left) + confidence pips (right), no category, no result badge */
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-header{
    border:none; padding:0; margin-bottom:14px; min-height:0; align-items:center;
}
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-category{ display:none !important; }
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-sport-badge{
    background:transparent !important; border:none !important; padding:0 !important; margin:0 !important;
    font-size:12.5px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--pp-text);
}
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-mh-pips{
    display:inline-flex; align-items:center; gap:6px; margin-left:auto;
}
.predictions-plugin-wrap[data-theme^="metallic"] .mh-pip{
    width:9px; height:9px; border-radius:50%; color:var(--pp-text);
    background:radial-gradient(circle at 35% 30%, rgba(255,255,255,.9), currentColor 82%);
    box-shadow:inset 0 -1px 2px rgba(0,0,0,.35), 0 0 4px rgba(255,255,255,.3);
}
.predictions-plugin-wrap[data-theme^="metallic"] .mh-pip.off{
    background:rgba(0,0,0,.18); box-shadow:inset 0 1px 2px rgba(0,0,0,.35);
}
.predictions-plugin-wrap[data-theme="metallic-black"] .mh-pip.off{ background:rgba(255,255,255,.14); }

/* League subline (SPORT · BET TYPE) under the header */
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-mh-subline{
    display:block; margin:0 0 10px;
    font-size:10.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--pp-text-muted);
}

/* Matchup → STACKED rows: small logo medallion + team name */
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-matchup{
    flex-direction:column; align-items:flex-start; border:none; padding:0; margin:0 0 6px; gap:2px;
}
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-team{
    flex:none; flex-direction:row; align-items:center; gap:11px; width:100%; text-align:left;
}
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-logo{
    display:block !important; width:34px; height:34px; flex-shrink:0; object-fit:contain; padding:4px;
    background:radial-gradient(circle at 38% 30%, rgba(255,255,255,.65), rgba(255,255,255,.2) 72%);
    border-radius:50%;
    box-shadow:inset 0 1px 2px rgba(255,255,255,.75), inset 0 -2px 4px rgba(0,0,0,.28), 0 2px 5px rgba(0,0,0,.3);
}
.predictions-plugin-wrap[data-theme="metallic-black"] .predictions-pick-logo{
    background:radial-gradient(circle at 38% 30%, rgba(215,198,144,.3), rgba(0,0,0,.25) 72%);
    box-shadow:inset 0 1px 2px rgba(215,198,144,.35), inset 0 -2px 4px rgba(0,0,0,.6), 0 2px 5px rgba(0,0,0,.5);
}
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-team-name{
    font-family:"Saira","Space Grotesk",-apple-system,sans-serif; font-size:24px; font-weight:800; line-height:1.08; text-align:left;
}
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-team-sub{ display:none !important; }
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-vs{
    background:transparent !important; border:none !important; padding:0 0 0 45px !important; margin:1px 0 !important;
    font-size:11px; font-weight:400; text-transform:lowercase; letter-spacing:.06em; color:var(--pp-text-faint);
}

/* Pick panel → selection + odds only (units move to the footer, like the mockup) */
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-detail-row .predictions-confidence,
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-detail-row .predictions-pick-units{ display:none !important; }
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-on{ font-weight:800; letter-spacing:.03em; }

/* Meta → keep the event date only (drop posted date + tags) as a slim line */
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-meta{
    display:flex !important; border:none; padding:0; margin:12px 0 0; gap:0;
}
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-posted,
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-tags{ display:none !important; }
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-date{
    font-family:var(--pp-mono); font-size:11px; letter-spacing:.04em; color:var(--pp-text-muted); opacity:.9;
}

/* Read Analysis → clean full-width outline button (improvised dropdown) */
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-notes{ margin-top:14px; }
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-notes-toggle{
    display:flex; align-items:center; justify-content:center; gap:6px; width:100%;
    padding:10px 14px; border-radius:var(--pp-radius-sm); font-size:12.5px; font-weight:700; letter-spacing:.04em;
    background:rgba(255,255,255,.20); border:1px solid var(--pp-border-strong); color:var(--pp-text);
}
.predictions-plugin-wrap[data-theme="metallic-black"] .predictions-pick-notes-toggle{
    background:rgba(215,198,144,.10); color:var(--pp-accent);
}
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-notes-toggle::after{
    content:"›"; margin-left:auto; font-size:16px; line-height:1; transform:rotate(90deg); transition:transform .2s; opacity:.7;
}
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-notes-toggle[aria-expanded="true"]::after{ transform:rotate(270deg); }
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-analysis{ margin-top:8px; }

/* Footer → thin ticket line: ID (left) + units (right), no barcode bars. Always shown. */
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-ticketcode,
.predictions-plugin-wrap[data-theme^="metallic"][data-barcode="1"] .predictions-pick-ticketcode{
    display:flex !important; align-items:center; gap:10px; margin-top:14px; padding-top:11px;
    border-top:1px dashed var(--pp-border-strong);
}
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-ticketcode .ptc-bars{ display:none !important; }
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-ticketcode .ptc-id{
    font-family:var(--pp-mono); font-size:11px; letter-spacing:.14em; color:var(--pp-text-muted); opacity:.85;
}
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-ticketcode .ptc-units{
    display:inline; margin-left:auto; font-family:var(--pp-mono); font-size:12px; font-weight:700; color:var(--pp-text-muted);
}
/* Keep the footer line visible in list layout too */
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-grid[data-layout="list"] .predictions-pick-ticketcode{ display:flex !important; }

/* Result footer bar → slim, result only (confidence now lives in the header pips), single line */
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-statusbar{
    flex-wrap:nowrap; font-size:13px; white-space:nowrap; justify-content:flex-end;
}
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-statusbar .psb-conf{ display:none; }
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-pick-statusbar .psb-result{
    overflow:hidden; text-overflow:ellipsis;
}

/* ── Metallic: clean, readable filter bar (no muddy gold-on-gold) ──────────── */
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-filters{
    background:rgba(255,255,255,.75); border:1px solid rgba(0,0,0,.09);
    box-shadow:0 6px 20px -12px rgba(0,0,0,.25); backdrop-filter:blur(4px);
}
.predictions-plugin-wrap[data-theme="metallic-black"] .predictions-filters{
    background:#191a1e; border-color:#2c2d33; box-shadow:0 6px 20px -12px rgba(0,0,0,.6);
}
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-filter-pill,
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-filter-select,
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-filter-search{
    background:#fff; border:1px solid rgba(0,0,0,.14); color:#2b2b2e;
}
.predictions-plugin-wrap[data-theme="metallic-black"] .predictions-filter-pill,
.predictions-plugin-wrap[data-theme="metallic-black"] .predictions-filter-select,
.predictions-plugin-wrap[data-theme="metallic-black"] .predictions-filter-search{
    background:#202127; border-color:#33353b; color:#e6cf83;
}
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-filter-pill.active{
    background:var(--pp-accent); border-color:var(--pp-accent); color:var(--pp-accent-text);
}
.predictions-plugin-wrap[data-theme^="metallic"] .predictions-filter-label{ color:var(--pp-text-muted); }

/* =============================================================================
   v3.18 — Shared analytics dashboard components (stats page + capper + profile)
   Gradient banner · KPI tiles with trend deltas · CSS/SVG chart holders
   ============================================================================= */
.pp-dash-banner{position:relative;overflow:hidden;border-radius:var(--pp-radius,16px);padding:22px 26px;margin-bottom:18px;color:#fff;
    background:linear-gradient(135deg,var(--pp-accent,#e85500),var(--pp-accent-2,#cc4000) 60%,var(--pp-accent,#e85500));
    display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;
    box-shadow:0 14px 34px -18px var(--pp-accent,#e85500)}
.pp-dash-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-dash-banner-main{position:relative}
.pp-dash-banner-label{font-size:12px;font-weight:600;opacity:.92;display:block}
.pp-dash-banner-value{font-size:44px;font-weight:900;line-height:1.02;letter-spacing:-.03em;display:block;margin-top:2px}
.pp-dash-banner-value small{font-size:22px;font-weight:800;opacity:.85}
.pp-dash-banner-delta{font-size:12px;opacity:.95;display:inline-flex;align-items:center;gap:6px;margin-top:4px}
.pp-dash-banner-chips{position:relative;display:flex;gap:26px;flex-wrap:wrap}
.pp-dash-banner-chips span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.06em;opacity:.85}
.pp-dash-banner-chips b{font-size:19px;font-weight:800}

.pp-kpi-grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:22px}
.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,16px);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,#22c55e) 16%,transparent);color:var(--pp-win,#22c55e)}
.pp-kpi-ico.i-blue{background:var(--pp-accent-soft,rgba(232,85,0,.12));color:var(--pp-accent,#e85500)}
.pp-kpi-ico.i-violet{background:color-mix(in srgb,var(--pp-void,#a78bfa) 16%,transparent);color:var(--pp-void,#a78bfa)}
.pp-kpi-ico.i-amber{background:color-mix(in srgb,var(--pp-pending,#f59e0b) 18%,transparent);color:var(--pp-pending,#f59e0b)}
.pp-kpi-ico.i-slate{background:var(--pp-bg-card-hover,#f1f5f9);color:var(--pp-text-muted,#64748b)}
.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,#22c55e) 16%,transparent);color:var(--pp-win,#22c55e)}
.pp-kpi-delta.down{background:color-mix(in srgb,var(--pp-loss,#ef4444) 16%,transparent);color:var(--pp-loss,#ef4444)}
.pp-kpi-delta.flat{background:var(--pp-bg-card-hover,var(--pp-border));color:var(--pp-text-muted)}

.pp-dash-card{background:var(--pp-bg-card);border:1px solid var(--pp-border);border-radius:var(--pp-radius,16px);padding:20px;box-shadow:var(--pp-shadow)}
.pp-dash-card-title{font-size:14px;font-weight:800;color:var(--pp-text);margin:0 0 14px;display:flex;align-items:center;justify-content:space-between}
.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)}
.pp-dash-charts{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin-bottom:22px}
@media(max-width:820px){.pp-dash-charts{grid-template-columns:1fr}}
.pp-donut-wrap{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.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)}

/* ── Pick card → matchup ("Game page") link ── */
.predictions-pick-matchlink{
    display:flex; align-items:center; justify-content:space-between; gap:10px;
    margin-top:10px; padding:9px 13px; border-radius:var(--pp-radius-sm,8px);
    background:var(--pp-accent-soft); border:1px solid transparent;
    text-decoration:none; transition:.15s;
}
.predictions-pick-matchlink:hover{ border-color:var(--pp-accent); }
.pp-matchlink-teams{ font-size:12.5px; font-weight:600; color:var(--pp-text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
.pp-matchlink-cta{ font-size:11.5px; font-weight:800; color:var(--pp-accent); white-space:nowrap; flex-shrink:0; letter-spacing:.01em; }

/* ── Front-end signup modal (self-contained; not scoped to a theme wrap) ── */
.pp-signup-overlay{position:fixed;inset:0;z-index:100000;background:rgba(10,12,16,.6);
    display:flex;align-items:center;justify-content:center;padding:20px;box-sizing:border-box}
.pp-signup-overlay[hidden]{display:none}
.pp-signup-modal{position:relative;background:#fff;color:#1a1a1a;border-radius:14px;
    width:100%;max-width:380px;padding:28px 26px;box-shadow:0 24px 60px rgba(0,0,0,.35);
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.pp-signup-close{position:absolute;top:12px;right:14px;background:none;border:none;font-size:22px;
    line-height:1;color:#888;cursor:pointer;padding:4px}
.pp-signup-close:hover{color:#1a1a1a}
.pp-signup-modal h3{margin:0 0 4px;font-size:19px;font-weight:800}
.pp-signup-sub{margin:0 0 18px;font-size:13px;color:#777}
.pp-signup-error{background:#fef2f2;border:1px solid #fca5a5;color:#b91c1c;font-size:12.5px;
    padding:9px 12px;border-radius:8px;margin-bottom:14px}
.pp-signup-form{display:flex;flex-direction:column;gap:12px}
.pp-signup-form label{display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:700;color:#444}
.pp-signup-form input[type="text"],.pp-signup-form input[type="email"],.pp-signup-form input[type="password"]{
    padding:10px 12px;border:1.5px solid #e0e0e0;border-radius:8px;font-size:14px;font-weight:400;color:#1a1a1a}
.pp-signup-form input:focus{outline:none;border-color:#e85500}
.pp-signup-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.pp-signup-submit{margin-top:4px;width:100%;padding:12px;border:none;border-radius:8px;
    background:#e85500;color:#fff;font-weight:800;font-size:14.5px;cursor:pointer}
.pp-signup-submit:disabled{opacity:.6;cursor:default}
.pp-signup-submit:hover:not(:disabled){background:#cc4000}
.pp-signup-login-link{margin:14px 0 0;font-size:12.5px;color:#777;text-align:center}
.pp-signup-login-link a{color:#e85500;font-weight:700;text-decoration:none}

/* PayPal placeholder shown to guests instead of the real payment button */
.pp-btn-paypal-signup{width:100%;padding:11px;border:1.5px solid #ffc439;border-radius:8px;
    background:#fff9ea;color:#3d2b00;font-weight:700;font-size:13.5px;cursor:pointer}
.pp-btn-paypal-signup:hover{background:#fff2d1}
